[此文来源于互联网,牛C网只负责收集整理]
如果有使用了很多表的复杂查询,但未返回任何行,应采用下述步骤找出什么出错:
用EXPLAIN测试查询,以检查是否发现某事显然出错。
仅选择在WHERE子句中使用的列。
从查询中1次删除1个表,直至返回了某些行为止。如果表很大,较好的主意是在查询中使用LIMIT 10。
对于具有与上次从查询中删除的表匹配的行的列,发出SELECT查询。
如果将FLOAT或DOUBLE列与具有数值类型的数值进行比较,不能使用等式(=)比较。在大多数计算机语言中,该问题很常见,这是因为,并非所有的浮点值均能以准确的精度保存。在某些情况下,将FLOAT更改为DOUBLE可更正该问题。
如果仍不能找出问题之所在,请创建能与显示问题的“mysql test < query.sql”一起运行的最小测试。通过使用mysqldump --quick db_name tbl_name_1 ... tbl_name_n > query.sql转储表,可创建测试文件。在编辑器中打开文件,删除某些插入的行(如果有超出演示问题所需的行),并在文件末尾添加SELECT语句。
通过执行下述命令,验证测试文件能演示问题:
shell> mysqladmin create test2
shell> mysql test2 < query.sql
使用mysqlbug将测试文件张贴到哟娜通用MySQL邮件列表。
作者:gdgzboy@牛C网
地址:http://www.niuc.net/post/2235/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
牛C网推荐您再看看以下日志:
DB2数据库优化10 佳性能技巧
使用SQL2000将现有代码作为Web服务提供
降低CPU使用效率 将逻辑放置数据库以外处理
Access中利用拆分后端数据库保存不同数据
Oracle10g中的current_scn是如何计算的
SQL Server如何访问sybase数据库的表
八个学习点帮助你全面认识Oracle数据库
如何获取或记录Oracle语句执行时间
专家教你如何使用SQL Server嵌套子查询
如何进行 SQL Server 批理修改权限
DB2数据库优化10 佳性能技巧
使用SQL2000将现有代码作为Web服务提供
降低CPU使用效率 将逻辑放置数据库以外处理
Access中利用拆分后端数据库保存不同数据
Oracle10g中的current_scn是如何计算的
SQL Server如何访问sybase数据库的表
八个学习点帮助你全面认识Oracle数据库
如何获取或记录Oracle语句执行时间
专家教你如何使用SQL Server嵌套子查询
如何进行 SQL Server 批理修改权限
轻松掌握MySQL数据库中建立外键的方法
轻松解决 MySQL中文件未找到的现象





