我们有一个现有的PHP / MySQL应用程序,它没有正确配置索引(监控显示我们进行了85%的表扫描,哎哟!)
要确定我们应该在哪里放置索引,需要遵循哪个好的流程?
我们正在使用PHP(Kohana使用ORM进行数据库访问)和MySQL。
答案 0 :(得分:1)
答案很可能取决于许多事情。例如,如果您想不惜一切代价优化SELECT,或者INSERT对您来说是否也很重要,那么您的策略可能会有所不同。您可能会阅读MySQL性能调优书或网站。有几个体面到伟大的。
如果您有慢查询日志,请检查它是否存在导致问题的特定查询。 http://dev.mysql.com/doc/refman/5.5/en/slow-query-log.html
如果您知道要运行的查询类型或通过慢查询日志或其他机制识别出有问题的查询,则可以使用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
答案 1 :(得分:0)
索引不仅适用于主键或唯一键。如果您要搜索的表中有任何列,则几乎总是将它们编入索引。
我认为这可以帮助您解决数据库问题。
http://net.tutsplus.com/tutorials/other/top-20-mysql-best-practices/