国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

查找MySQL中查詢慢的SQL語句方法

2024-07-24 12:51:48
字體:
來源:轉載
供稿:網友

如何在mysql查找效率慢的SQL語句呢?這可能是困然很多人的一個問題,MySQL通過慢查詢日志定位那些執行效率較低的SQL 語句,用--log-slow-queries[=file_name]選項啟動時,mysqld 會寫一個包含所有執行時間超過long_query_time 秒的SQL語句的日志文件,通過查看這個日志文件定位效率較低的SQL 。下面介紹MySQL中如何查詢慢的SQL語句

一、MySQL數據庫有幾個配置選項可以幫助我們及時捕獲低效SQL語句

1,slow_query_log

這個參數設置為ON,可以捕獲執行時間超過一定數值的SQL語句。

2,long_query_time

當SQL語句執行時間超過此數值時,就會被記錄到日志中,建議設置為1或者更短。

3,slow_query_log_file

記錄日志的文件名。

4,log_queries_not_using_indexes

這個參數設置為ON,可以捕獲到所有未使用索引的SQL語句,盡管這個SQL語句有可能執行得挺快。

二、檢測mysql中sql語句的效率的方法

1、通過查詢日志

(1)、Windows下開啟MySQL慢查詢

MySQL在Windows系統中的配置文件一般是是my.ini找到[mysqld]下面加上

代碼如下

log-slow-queries = F:/MySQL/log/mysqlslowquery。log
long_query_time = 2

(2)、Linux下啟用MySQL慢查詢

MySQL在Windows系統中的配置文件一般是是my.cnf找到[mysqld]下面加上

代碼如下

log-slow-queries=/data/mysqldata/slowquery。log
long_query_time=2

說明

log-slow-queries = F:/MySQL/log/mysqlslowquery。

為慢查詢日志存放的位置,一般這個目錄要有MySQL的運行帳號的可寫權限,一般都將這個目錄設置為MySQL的數據存放目錄;
long_query_time=2中的2表示查詢超過兩秒才記錄;

2.show processlist 命令

WSHOW PROCESSLIST顯示哪些線程正在運行。您也可以使用mysqladmin processlist語句得到此信息。

各列的含義和用途:

ID列

一個標識,你要kill一個語句的時候很有用,用命令殺掉此查詢 /*/mysqladmin kill 進程號。

user列

顯示單前用戶,如果不是root,這個命令就只顯示你權限范圍內的sql語句。

host列

顯示這個語句是從哪個ip的哪個端口上發出的。用于追蹤出問題語句的用戶。

db列

顯示這個進程目前連接的是哪個數據庫。

command列

顯示當前連接的執行的命令,一般就是休眠(sleep),查詢(query),連接(connect)。

time列

此這個狀態持續的時間,單位是秒。

state列

顯示使用當前連接的sql語句的狀態,很重要的列,后續會有所有的狀態的描述,請注意,state只是語句執行中的某一個狀態,一個 sql語句,以查詢為例,可能需要經過copying to tmp table,Sorting result,Sending data等狀態才可以完成

info列

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 噶尔县| 锡林浩特市| 定南县| 莱西市| 武宣县| 通河县| 临泽县| 微山县| 商都县| 稻城县| 呈贡县| 砚山县| 江津市| 奉化市| 漠河县| 吴江市| 六安市| 正蓝旗| 社旗县| 武穴市| 宁河县| 乾安县| 宁远县| 齐齐哈尔市| 丹凤县| 泸西县| 循化| 勐海县| 花莲市| 新干县| 宜川县| 琼结县| 周至县| 芦山县| 鲁甸县| 大化| 河南省| 于田县| 大新县| 桓仁| 朝阳县|