日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > 數據庫應用 > MySQL慢查詢

MySQL慢查詢

來源:程序員人生   發布時間:2015-01-14 08:50:36 閱讀次數:3178次

慢查詢(slow log)可以幫助我們定位到特定的SQL語句進行SQL語句層面的優化,例如,慢查詢日志會記錄那些履行時間超過給定值得SQL語句,從而定位到問題的所在。

開啟慢查詢

查看MySQL數據庫實例關于慢查詢的參數

mysql> show variables like '%slow%'; +---------------------------+-----------------------------------+ | Variable_name | Value | +---------------------------+-----------------------------------+ | log_slow_admin_statements | OFF | | log_slow_slave_statements | OFF | | slow_launch_time | 2 | | slow_query_log | OFF | | slow_query_log_file | /var/lib/mysql/localhost-slow.log | +---------------------------+-----------------------------------+ 5 rows in set (0.00 sec) mysql> show variables like '%long_query_time%'; +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+ 1 row in set (0.02 sec)

其中,

slow_query_log便是開啟慢查詢的參數

slow_query_log_file是慢查詢日志文件的路徑

log_query_time是查詢時間的最大值,超過這個時間就會被慢查詢日志記錄。

下面是開始慢查詢,然后將查詢時間最大值設為2秒,履行sleep3秒,查看慢查詢日志的例子

mysql> set global slow_query_log=ON; Query OK, 0 rows affected (0.03 sec) mysql> set long_query_time=2; Query OK, 0 rows affected (0.00 sec) mysql> show variables like '%long_query_time%'; +-----------------+----------+ | Variable_name | Value | +-----------------+----------+ | long_query_time | 2.000000 | +-----------------+----------+ 1 row in set (0.00 sec) mysql> select sleep(3); +----------+ | sleep(3) | +----------+ | 0 | +----------+ 1 row in set (3.00 sec) mysql> system cat /var/lib/mysql/localhost-slow.log /usr/sbin/mysqld, Version: 5.6.22-log (MySQL Community Server (GPL)). started with: Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock Time Id Command Argument # Time: 150102 16:56:54 # User@Host: root[root] @ localhost [] Id: 1 # Query_time: 3.001084 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0 use test2; SET timestamp=1420189014; select sleep(3);

慢查詢還有1個參數log_queries_not_using_indexes,用來表示每分鐘允許記錄到慢查詢日志的未使用索引的SQL語句的次數,默許為0,表示沒有限制,但是生產環境中,這類語句會大量占據慢查詢日志的大小,給DBA的分析帶來困擾。

除使用日志文件查看慢查詢日志,還可使用表的情勢查看。在數據庫名為mysql的模式下,有1張叫做slow_log的表,可以記錄慢查詢的輸出,只需改變日志的輸出模式log_output,參數log_output是全局的動態的,可以在運行時動態的改變。

mysql> show variables like '%log_output%'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_output | FILE | +---------------+-------+ 1 row in set (0.00 sec) mysql> set global log_output='table'; Query OK, 0 rows affected (0.00 sec) mysql> select sleep(3); +----------+ | sleep(3) | +----------+ | 0 | +----------+ 1 row in set (3.00 sec)

指的注意的是slow_log這張表的引擎室CSV,對查詢的效力可能不是很高,但是作為日志的追加插入效力很高。

mysql> show create table slow_logG *************************** 1. row *************************** Table: slow_log Create Table: CREATE TABLE `slow_log` ( `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `user_host` mediumtext NOT NULL, `query_time` time NOT NULL, `lock_time` time NOT NULL, `rows_sent` int(11) NOT NULL, `rows_examined` int(11) NOT NULL, `db` varchar(512) NOT NULL, `last_insert_id` int(11) NOT NULL, `insert_id` int(11) NOT NULL, `server_id` int(10) unsigned NOT NULL, `sql_text` mediumtext NOT NULL, `thread_id` bigint(21) unsigned NOT NULL ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'

關于慢查詢的另外1個有用的參數是long_query_io表示將超過指定邏輯IO次數(邏輯IO包括物理IO,表示物理IO和緩沖池讀取次數之和)的SQL語句記錄到慢查詢日志中去。


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 五月天丁香社区 | 99免费视频 | 欧美成人在线免费视频 | 欧美日韩高清在线观看 | 久久久久久久国产精品 | 国产精品久久一区 | 一级片久久 | 国产欧美精品一区二区色综合 | 亚洲91 | 91精品国产自产91精品 | 欧亚日韩精品一区二区在线 | 美女激情av | 久久久久久久久久国产 | 超碰超碰 | 午夜精品久久久久久久白皮肤 | 精品久久9 | 日韩免费视频一区二区 | 精品小视频 | 免费成人黄色 | 免费的毛片 | 国产真实乱偷精品视频免 | 青青青国产视频 | 免费在线一区二区 | 99视频一区二区 | 亚洲一区二区免费视频 | 国产伦精品一区二区三区照片 | 亚洲日本久久 | 日韩高清网站 | 国产精品videosex极品 | av中文天堂 | 日本午夜视频 | 亚洲综合色网 | 色姑娘桃花网 | 爱爱视频免费 | 国产精品免费一区二区三区 | 91高清在线观看 | 国产高清av在线 | 国产成人综合av | 久久久蜜桃| 国产精品三级视频 | 欧美中文字幕一区二区三区 |