Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何查看应用程序以选择正确的索引-php&;mysql_Php_Database_Orm_Indexing - Fatal编程技术网

如何查看应用程序以选择正确的索引-php&;mysql

如何查看应用程序以选择正确的索引-php&;mysql,php,database,orm,indexing,Php,Database,Orm,Indexing,我们现有的PHP/MySQL应用程序没有正确配置索引(监控显示我们进行了85%的表扫描,哎哟!) 确定我们应该将索引放在哪里的好过程是什么 我们正在使用PHP(Kohana使用ORM访问数据库)和MySQL。答案可能取决于许多方面。例如,如果您想不惜一切代价优化选择,或者插入是否对您也很重要,那么您的策略可能会有所不同。您最好阅读MySQL性能调优书籍或网站。有好几种从正派到伟大的 如果您的查询日志很慢,请检查它以查看是否有导致问题的特定查询 如果您知道将要运行的查询类型,或者通过慢速查询日志或

我们现有的PHP/MySQL应用程序没有正确配置索引(监控显示我们进行了85%的表扫描,哎哟!)

确定我们应该将索引放在哪里的好过程是什么


我们正在使用PHP(Kohana使用ORM访问数据库)和MySQL。

答案可能取决于许多方面。例如,如果您想不惜一切代价优化选择,或者插入是否对您也很重要,那么您的策略可能会有所不同。您最好阅读MySQL性能调优书籍或网站。有好几种从正派到伟大的

如果您的查询日志很慢,请检查它以查看是否有导致问题的特定查询

如果您知道将要运行的查询类型,或者通过慢速查询日志或其他机制识别出有问题的查询,那么可以使用EXPLAIN命令获取这些查询的一些统计信息


一旦您获得EXPLAIN的输出,就可以使用它进行优化。请参见

索引不仅仅针对主键或唯一键。如果您的表中有任何要搜索的列,您几乎应该始终对它们进行索引

我认为这将有助于解决您的数据库问题


从慢查询开始。在联接中的所有列上以及每个
右侧添加索引,其中
我们没有足够的数据生成慢查询,我们还没有投入生产。并且使用ORM会隐藏SQL,使其无法轻松访问。在过去的项目中,我一直都是自己编写SQL的,因此在执行过程中很容易建立索引。您应该能够从探查器中获取所有数据库查询: