share facebook facebook twitter menu hatena pocket slack

2012.01.12 THU

MySQLパフォーマンスチューニング vol.2

櫛田 草平

WRITTEN BY 櫛田 草平

こんにちは。
職人見習いの高嶋です。

MySQLパフォーマンスチューニング vol.1で紹介したSlowLogの続きになります。
指定した秒数を超えるSQL文の実行があった場合、SlowLogにそのSQL文の情報が記載されると
前回紹介しましたが、それ以外にも、インデックスを使用していないSQL文を記載する事もできます。

/etc/my.cnfにて、下記の設定をすることで可能です。

log-long-format      インデックスを使用しなかったSQL文も記録します

不特定多数が実行するサービスにおいて、インデックスを利用していないSQL文を
利用している場合は大抵問題となります。

ちなみに、以下のような形式でログに記載されます。

# Time: 040623 22:53:30
# User@Host: [ODBC] @ localhost [127.0.0.1]
# Query_time: 0 Lock_time: 0 Rows_sent: 239 Rows_examined: 239
select * from country;

1行目 記録日時
2行目 ユーザーIDとリクエストした端末
3行目 Query_time(実行時間) Lock_time(ロック時間) Rows_sent(送信行数)  Rows_examined(処理対象となった行数)
4行目 SQL文

「Query_time」がSQLの実行時間である事から、指定秒数は超えていないにも関わらず
インデックスを全く利用していないSQL文である為、このように記録が残ります。

※この記事は、なかの人(piro556)が書いています。

櫛田 草平

櫛田 草平

cloudpackで運用、保守、構築、夜間対応を担当しており、日々様々な課題に対応していますのでこの経験を記事にしていけたらと思います。 櫛田 草平

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。