ホームページ  >  記事  >  データベース  >  mysqlのスロークエリについて詳しく解説

mysqlのスロークエリについて詳しく解説

怪我咯
怪我咯オリジナル
2017-04-01 10:12:401121ブラウズ

1 SlowQueryDefinition

は、mysql が、long_query_time パラメータで設定された時間しきい値を超えて実行されるすべての SQL ステートメントを記録することを意味します。スロークエリログは、これらのSQLを記録するログです。
2 スロークエリログをオンにします
mysql設定ファイルmy.cnfを見つけて、mysqldの下に

log-slow-queries = D:/MySQL/log/mysqld-slow-query.log  #日志存在的位置。(注意权限的问题,可以不用设置,系统会给一个缺省的文件host_name-slow.log)

long-query-time = 5   #SQL执行时间阈值,默认为10秒。

#log-long-format   #说log-long-format选项是用来设置日志的格式,它是以扩展方式记录有关事件。扩展方式可记录谁发出查询和什么时候发出查询的信息。可使我们更好地掌握客户端的操作情况。

#log-slow-admin-statements  #将慢管理语句例如OPTIMIZE TABLE、ANALYZE TABLE和ALTER TABLE记入慢查询日志。

log-queries-not-using-indexes #如果运行的SQL语句没有使用索引,则mysql数据库同样会将这条SQL语句记录到慢查询日志文件中。

を追加し、設定が完了したらmysqlサービスを再起動します。
3 テスト
便宜上、my.cnf にスロークエリログのパスのみを設定しました
mysql のバージョンは 5.1.73 です
long_query_time について: mysql 5.1 から、long_query_time は SQL ステートメントの実行時間を記録し始めます。以前は秒単位でのみ記録されていました。これにより、DBA 分析のために SQL の実行時間をより正確に記録できます。
mysql と入力します。

mysql> show VARIABLES like "%slow%"; #查看慢查询日志相关的信息

mysql> set global long_query_time=0.01;  #将mysql位置的值改为 0.01

mysql> show variables like "long_query_time"; #查看是否生效

mysql> select sleep(2); #延迟2秒执行 注:这条sql执行完毕以后应该已经在慢查询的日志文件中产生相关的信息记录

mysql> show global status like '%slow%'; #查看慢查询语句的次数


SQL がログ ファイルに記録されていることがわかります。
mysqlのスロークエリについて詳しく解説

概要:
Windows で MySQL のスロー クエリを有効にする
Windows システムの MySQL の設定ファイルは通常 my. ini find [mysqld] と追加
log-slow-queries = F:MySQLlogmysqlslowquery.log
long_query_time = 2
Linux で MySQL スロークエリを有効にする
Windows システムにおける MySQL の設定ファイルは通常 my.cnf です。 mysqld] を追加し、
log-slow-queries=/data/mysqldata/slowquery.log
long_query_time=2

log-slow-queries = F:MySQLlogmysqlslowquery.log はスロークエリログが保存される場所です。通常、このディレクトリには MySQL 実行アカウントに対する書き込み権限が必要であり、通常、このディレクトリは MySQL データ ストレージ ディレクトリとして設定されます。
long_query_time=2 は、クエリが 2 秒以上かかるまで記録されないことを意味します。


- ->

以上がmysqlのスロークエリについて詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。