引言: 在mysql中如何測試單個sql的執行時間,是非常有助於我們理解其中的問題的,本文將介紹如何定位sql.的使用時間和執行計畫。
1. 檢視mysql關於profile的設定
show variables like '%pro%'; #查驗mysql中profile的設定選項
上圖中的profiling標識著的當前的mysql例項並未記錄sql執行時間。
2. 設定其profiling選項
從上圖可以看出,profile的選項已經開啟了。
3. 檢視profiles的記錄情況
4. 執行sql,檢視其執**況
隨意執行若干sql: select * from om_transfer omt;
執行: show profiles;
看到其執行的時間為6.48秒
5. 檢視特定profile的執行
由於資訊很長,請各自自行檢視一下。
6. 檢視sql的執行計畫,一般在多表關聯的情況下比較有用
可以看到,被紅框選中的extra列中,列出了該sql在執行中是否使用index,大家可以根據該列去判斷是否sql query是高效的。
7. 檢視資料庫連線
show processlist;
可以檢視所有的程序列表,但是太長了,無法看到我們想要的內容。
select * from information_schema.processlist pl where pl.db like '%buffalo%' limit 10; #查驗特定資料的程序列表資訊,前10個
從上圖中可以看到,從information_schema中檢視到了特定的process列表。
8. 總結
這些工具基本上是非常有用的,大家可以參照著在日常工作中使用。
SQL 執行查詢記錄的速度
乙個查詢是否存在記錄的sql.如下 select count from table a where condition x 這是乙個全表的檢索.如果只是查詢是否存在記錄是否有更快的辦法.select 1 from table a where condition x and rownum 1 資料量不...
sql count執行速度測試
最近做專案開發的時候要對資料庫裡面的資料數量進行統計使用,資料庫的大概有2000w多的資料。資料庫是mysql5.6 用的是遠端連線測試 elect count 執行語句 select count from t banlong push regdev 執行5次,平均耗時17.5s select co...
Mysql執行速度優化
1 create table t select from t old where 1 0 2 create table t like t old 3 create table t 其中 1 最快,但是它取消原來表的有些定義。自增字段 表引擎都變了,如果想要保持一樣的引擎,就在table名稱後邊加上 ...