2

インデックスが正しく構成されていない既存のPHP/MySQLアプリがあります(監視では、85%のテーブルスキャンを実行していることが示されています、痛いです!)

インデックスを配置する場所を特定するために従うべき良いプロセスは何ですか?

PHP(DBアクセスにORMを使用するKohana)とMySQLを使用しています。

4

2 に答える 2

1

答えはおそらく多くのことに依存します。たとえば、SELECTをすべてのコストで最適化したい場合や、INSERTが重要であるかどうかによって、戦略が異なる場合があります。MySQLPerformanceTuningの本またはWebサイトを読むとよいでしょう。いくつかのまともなものから素晴らしいものがあります。

遅いクエリログがある場合は、それをチェックして、問題を引き起こしている特定のクエリがあるかどうかを確認します。 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-20T04:46:36.720 に答える
0

インデックスは、主キーや一意キーだけのものではありません。検索する列がテーブルにある場合は、ほとんどの場合、それらにインデックスを付ける必要があります。

これはデータベースの問題に役立つと思います。

http://net.tutsplus.com/tutorials/other/top-20-mysql-best-practices/

于 2012-04-20T04:50:20.703 に答える