我在一个相当复杂的网站(PHP驱动)中使用MySQL.
理想情况下,我可以使用一个工具来帮助我测试我正在使用的SQL查询,并建议更好的表索引,这将提高性能并避免表扫描.
如果做不到的话,会告诉我每个查询到底是什么,所以我可以自己进行优化.
编辑:理解EXPLAIN输出的简单指南...也很有用.
谢谢.
好的,在我回答之前,订阅MySQL性能博客,我已经学到了很多东西(我以为我已经对MySQL了解很多).此外,他在这里有一个bitchin'工具页面.
第二个,这里有一些关于EXPLAIN的信息(参考O'Reilly的高性能MySQL书籍):
当您在查询上运行EXPLAIN时,它会以查询中涉及的每个表的报告形式告诉您MySQL查询该查询的所有内容.
这些报告中的每一个都会告诉你......
表的ID(在查询中)
表格在更大的选择中的作用(如果适用,可能只是简单地说SIMPLE,如果只有一个表格)
表的名称(duh)
连接类型(如果适用,默认为const)
表上的索引列表(如果没有则为NULL),possible_keys
关键是MySQL决定使用的索引的名称
键值的大小(以字节为单位)
ref显示用于匹配键的cols或值
rows是MySQL认为需要检查以满足查询的行数.这应尽可能接近您计算的最小值!
......然后MySQL希望传达的任何额外信息
这本书在提供这样的信息方面非常棒,所以如果你还没有,请让你的老板签署购买协议.
否则,我希望一些知识渊博的SO用户可以帮助:)