我们有一个现有的PHP/MySQL应用程序,它没有正确配置索引(监控显示我们进行了85%的表扫描,糟了!)
要确定我们应该将索引放在哪里,应该遵循什么好的过程?
我们使用PHP (Kohana使用对象关系映射进行DB访问)和MySQL。
发布于 2012-04-20 12:46:37
答案可能取决于很多因素。例如,如果您想要不惜一切代价优化选择,或者是否插入对您也很重要,那么您的策略可能会有所不同。您最好阅读一本MySQL性能调优书籍或网站。有几个相当不错的例子。
如果您的查询日志速度很慢,请检查它,看看是否有特定的查询导致了问题。http://dev.mysql.com/doc/refman/5.5/en/slow-query-log.html
如果您知道要运行的查询的类型,或者已经通过Slow Query Log或其他机制发现了有问题的查询,则可以使用EXPLAIN命令获取这些查询的一些统计信息。http://dev.mysql.com/doc/refman/5.5/en/explain.html
一旦您有了EXPLAIN的输出,您就可以使用它进行优化。请参阅http://dev.mysql.com/doc/refman/5.5/en/using-explain.html
发布于 2012-04-20 12:50:21
索引不仅仅用于主键或唯一键。如果表中有任何列可供搜索,则几乎总是应该对它们进行索引。
我认为这将帮助您解决数据库问题。
http://net.tutsplus.com/tutorials/other/top-20-mysql-best-practices/
https://stackoverflow.com/questions/10240376
复制相似问题