2014年4月4日金曜日

MySQLの説明&SQL_NO_CACHE

Original post: http://anothermysqldba.blogspot.com/2014/04/mysql-explain-sqlnocache.html

だから、今日私は彼らのデータベースのパフォーマンスを持つ人を支援し、いくつかの下手に書かれたクエリに出会った。 今、確かに誰もが目標は、それらを避けるためにあなたができることはすべて行うことです、ミスをする。

つまり、あなたの環境に緩いクエリを聞かせて前にすべき役立つヒントだけのカップル。

常に最初に説明を経由してクエリを実行します。 最初の説明何のような単純なものは、(それが実行されませんので)全くタイプミスを確認せず、クエリを最適化できるようになります。
いくつかのリンクは、すでに説明しての使用方法については存在します。
目標は単純です。 あなたがでpossible_keysとキー(nullではない)での有効なキーをしたいし、それがkey_lenにに来るときには、すべてのテーブルは、行の100Sにしたくない。 あなたが最初にkey_lenには200(私が例として取り上げただ数)であることが得ることができる場合、以下のは5,4,3,2,1としない別の200であることが、あなたのクエリでは、よく実行する必要があります。 それは非常に単純化し、高レベルの文であると私はあなたが詳しく説明し理解することが記載されているハイパーリンクを参考することができます。 今日見たクエリは、5 +が参加し、すべてのkey_lenにサブセレクト(参加を通じてどこ声明の中で優れていた)と200 +の行がありました。 いくつかの調整はあなたのクエリが1秒以下に200秒からドロップできるようにすることができます。 いつも、いつも、いつも説明しますか。

次のヒントは、SQL_NO_CACHEを使用してクエリをテストしてみてください。 これは、実際のクエリをテストし、それをあなたができる最善の方法を最適化することができます。 それは(それがになる場合)、キャッシュされたとなったら、それはあなたのためだけに、そのはるかに高速に実行されます。
最後の注意...一度フォージサイトに存在していたが、今であるMySQLのSQLパフォーマンスのヒントを見てみましょう- https://wikis.oracle.com/pages/viewpage.action?pageId=27263381