Ideraで行った最近のWebキャストでは、非常に多くの新しいトリックやヒントを紹介することができました。最も評価の高いヒントの1つは、コマンドSHOW STATUS LIKE‘Last_Query_Cost’を使用してMySQLで最終クエリコストを取得する方法に関するものでした。今日それについて学びましょう。
SQL Serverを使用している場合、グラフィカル実行プラン、XL実行プラン、またはプランキャッシュDMVのいずれかを使用すると、クエリのコストを簡単に取得できます。ただし、MySQLを使用している場合、最後のクエリコストを把握することは非常に困難です。 包括的なデータベースパフォーマンスヘルスチェックでよく見かけます DBAはMySQLクエリを調整したいのですが、クエリのパフォーマンスを測定する方法がわかりません。
MySQLまたはMariaDBを使用している場合は、次のコマンドを実行することで、コストの観点からクエリのパフォーマンスをいつでも測定できます。
ステータスの表示
SHOW STATUS LIKE 'Last_Query_Cost';
コマンドの公式ドキュメントは次のとおりです。クエリオプティマイザによって計算された、最後にコンパイルされたクエリの合計コスト。これは、同じクエリのさまざまなクエリプランのコストを比較する場合に役立ちます。デフォルト値の0は、クエリがまだコンパイルされていないことを意味します。デフォルト値は0です。Last_query_costにはセッションスコープがあります。
MySQL用のSakilaサンプルデータベースを使用してどのように機能するかの簡単な例を見てみましょう。 。
USE sakila; SELECT * FROM film f INNER JOIN film_actor fa ON f.film_id = fa.film_id INNER JOIN film_category fc ON fc.film_id = fa.film_id WHERE f.film_id = 10; SHOW STATUS LIKE 'Last_Query_Cost';
上記のクエリを実行したときに得られる結果は次のとおりです。
ステータスの助けを借りて、クエリの実行にかかったコストを知ることができます。他にご提案がございましたら、お知らせください。さらに、修正措置と問題解決をリアルタイムで監視する場合は、MySQLおよびMariaDB用のSQL診断マネージャーを検討する必要があります。 。