日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

mysql - 測試不同sql語句的查詢效率

瀏覽:192日期:2022-06-15 13:09:28

問題描述

沒有深入學習過數據庫,只是了解一些mysql基礎和增刪改操作,我想問問有沒有工具(方法也行),當數據表中的數據幾百萬條時,可以讓我通過使用不同的sql語句,來直觀的查看不同sql語句的執行效率,謝謝大家了

問題解答

回答1:

mysql - 測試不同sql語句的查詢效率4.1. EXPLAIN在MySQL中可以使用EXPLAIN查看SQL執行計劃,用法:EXPLAIN SELECT * FROM tb_item

4.2. 結果說明4.2.1. idSELECT識別符。這是SELECT查詢序列號。這個不重要。4.2.2. select_type表示SELECT語句的類型。

有以下幾種值:1、 SIMPLE表示簡單查詢,其中不包含連接查詢和子查詢。2、 PRIMARY表示主查詢,或者是最外面的查詢語句。

3、 UNION表示連接查詢的第2個或后面的查詢語句。

4、 DEPENDENT UNIONUNION中的第二個或后面的SELECT語句,取決于外面的查詢。5、 UNION RESULT連接查詢的結果。6、 SUBQUERY子查詢中的第1個SELECT語句。

7、 DEPENDENT SUBQUERY子查詢中的第1個SELECT語句,取決于外面的查詢。8、 DERIVEDSELECT(FROM 子句的子查詢)。4.2.3. table表示查詢的表。4.2.4. type(重要)表示表的連接類型。以下的連接類型的順序是從最佳類型到最差類型:

1、 system表僅有一行,這是const類型的特列,平時不會出現,這個也可以忽略不計。2、 const數據表最多只有一個匹配行,因為只匹配一行數據,所以很快,常用于PRIMARY KEY或者UNIQUE索引的查詢,可理解為const是最優化的。

3、 eq_refmysql手冊是這樣說的:'對于每個來自于前面的表的行組合,從該表中讀取一行。這可能是最好的聯接類型,除了const類型。它用在一個索引的所有部分被聯接使用并且索引是UNIQUE或PRIMARY KEY'。eq_ref可以用于使用=比較帶索引的列。

4、 ref查詢條件索引既不是UNIQUE也不是PRIMARY KEY的情況。ref可用于=或<或>操作符的帶索引的列。

5、 ref_or_null該聯接類型如同ref,但是添加了MySQL可以專門搜索包含NULL值的行。在解決子查詢中經常使用該聯接類型的優化。

上面這五種情況都是很理想的索引使用情況。

6、 index_merge該聯接類型表示使用了索引合并優化方法。在這種情況下,key列包含了使用的索引的清單,key_len包含了使用的索引的最長的關鍵元素。7、 unique_subquery該類型替換了下面形式的IN子查詢的ref: value IN (SELECT primary_key FROM single_table WHERE some_expr) unique_subquery是一個索引查找函數,可以完全替換子查詢,效率更高。8、 index_subquery該聯接類型類似于unique_subquery。可以替換IN子查詢,但只適合下列形式的子查詢中的非唯一索引: value IN (SELECT key_column FROM single_table WHERE some_expr)9、 range只檢索給定范圍的行,使用一個索引來選擇行。

10、 index該聯接類型與ALL相同,除了只有索引樹被掃描。這通常比ALL快,因為索引文件通常比數據文件小。11、 ALL對于每個來自于先前的表的行組合,進行完整的表掃描。(性能最差)4.2.5. possible_keys指出MySQL能使用哪個索引在該表中找到行。如果該列為NULL,說明沒有使用索引,可以對該列創建索引來提高性能。4.2.6. key顯示MySQL實際決定使用的鍵(索引)。如果沒有選擇索引,鍵是NULL。

可以強制使用索引或者忽略索引:

4.2.7. key_len顯示MySQL決定使用的鍵長度。如果鍵是NULL,則長度為NULL。

注意:key_len是確定了MySQL將實際使用的索引長度。

4.2.8. ref顯示使用哪個列或常數與key一起從表中選擇行。4.2.9. rows顯示MySQL認為它執行查詢時必須檢查的行數。4.2.10. Extra該列包含MySQL解決查詢的詳細信息? Distinct:MySQL發現第1個匹配行后,停止為當前的行組合搜索更多的行。? Not exists:MySQL能夠對查詢進行LEFT JOIN優化,發現1個匹配LEFT JOIN標準的行后,不再為前面的的行組合在該表內檢查更多的行。? range checked for each record (index map: #):MySQL沒有發現好的可以使用的索引,但發現如果來自前面的表的列值已知,可能部分索引可以使用。? Using filesort:MySQL需要額外的一次傳遞,以找出如何按排序順序檢索行。? Using index:從只使用索引樹中的信息而不需要進一步搜索讀取實際的行來檢索表中的列信息。? Using temporary:為了解決查詢,MySQL需要創建一個臨時表來容納結果。? Using where:WHERE 子句用于限制哪一個行匹配下一個表或發送到客戶。? Using sort_union(...), Using union(...), Using intersect(...):這些函數說明如何為index_merge聯接類型合并索引掃描。? Using index for group-by:類似于訪問表的Using index方式,Using index for group-by表示MySQL發現了一個索引,可以用來查 詢GROUP BY或DISTINCT查詢的所有列,而不要額外搜索硬盤訪問實際的表。

下面列出一些數據庫SQL優化方案:(01)選擇最有效率的表名順序(筆試常考)

數據庫的解析器按照從右到左的順序處理FROM子句中的表名, FROM子句中寫在最后的表將被最先處理, 在FROM子句中包含多個表的情況下,你必須選擇記錄條數最少的表放在最后, 如果有3個以上的表連接查詢,那就需要選擇那個被其他表所引用的表放在最后。 例如:查詢員工的編號,姓名,工資,工資等級,部門名 select emp.empno,emp.ename,emp.sal,salgrade.grade,dept.dname from salgrade,dept,emp where (emp.deptno = dept.deptno) and (emp.sal between salgrade.losal and salgrade.hisal) 1)如果三個表是完全無關系的話,將記錄和列名最少的表,寫在最后,然后依次類推 2)如果三個表是有關系的話,將引用最多的表,放在最后,然后依次類推

(02)WHERE子句中的連接順序(筆試常考)

數據庫采用自右而左的順序解析WHERE子句,根據這個原理,表之間的連接必須寫在其他WHERE條件之左, 那些可以過濾掉最大數量記錄的條件必須寫在WHERE子句的之右。 例如:查詢員工的編號,姓名,工資,部門名 select emp.empno,emp.ename,emp.sal,dept.dname from emp,dept where (emp.deptno = dept.deptno) and (emp.sal > 1500)

(03)SELECT子句中避免使用*號

數據庫在解析的過程中,會將*依次轉換成所有的列名,這個工作是通過查詢數據字典完成的,這意味著將耗費更多的時間 select empno,ename from emp;

(04)用TRUNCATE替代DELETE

(05)盡量多使用COMMIT

因為COMMIT會釋放回滾點

(06)用WHERE子句替換HAVING子句

WHERE先執行,HAVING后執行

(07)多使用內部函數提高SQL效率

(08)使用表的別名

salgrade s

(09)使用列的別名

ename e回答2:

EXPLAIN

回答3:

推薦你用一個可視化工具,navicat,這個執行sql的時候會自動進行explain分析操作,操作起來比命令行方便。

回答4:

剛實習沒多久,用的是sql server,也是別人那找來的記錄下來。DBCC DROPCLEANBUFFERS清空緩存DBCC FREEPROCCACHE 刪除計劃高速緩存中的元素SET STATISTICS TIME ON 看CPU時間SET STATISTICS IO ON 看邏輯讀取數SET STATISTICS PROFILE ON 這個不會用

相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩1区2区3区| 欧美日韩视频一区二区三区| 免费的成人av| 日本在线精品| 日本免费久久| 久久精品成人| 午夜欧美理论片| aa亚洲婷婷| 蜜芽一区二区三区| 日韩中文一区二区| 日韩高清不卡一区二区| 欧美天堂一区二区| 欧美国产视频| 国产精品精品| 日韩影院二区| 91精品观看| 欧美专区一区二区三区| 日本在线不卡视频| 青青国产精品| 麻豆传媒一区二区三区| 中文字幕高清在线播放| 亚洲高清激情| 老司机精品久久| 日韩高清中文字幕一区| 国产欧美综合一区二区三区| 日本不卡中文字幕| 久久精品国产福利| 亚洲www啪成人一区二区| 亚洲欧美伊人| 午夜亚洲福利| 国产精品115| 久久久天天操| 伊人精品久久| 国产精品欧美大片| 国产91在线播放精品| 伊人久久大香线蕉av不卡| 合欧美一区二区三区| 日韩精品乱码av一区二区| 九九99久久精品在免费线bt| 久久久一二三| 亚洲精品大片| 手机在线电影一区| 日韩午夜黄色| 国产精品一区二区三区美女| 亚洲风情在线资源| 亚洲一区二区三区四区电影| 国产精品天天看天天狠| 国产99久久| 日韩高清不卡在线| 国产一区二区三区精品在线观看| 亚洲午夜精品久久久久久app| 在线国产精品一区| 精品中文在线| 丝袜亚洲另类欧美| 欧美国产中文高清| 欧美日韩激情在线一区二区三区| 天堂va欧美ⅴa亚洲va一国产| 国产精品99在线观看| 欧美一级专区| 精品五月天堂| 在线精品亚洲| 日韩欧美精品综合| 亚洲人成精品久久久| 国产中文欧美日韩在线 | 欧美久久亚洲| 丝袜美腿诱惑一区二区三区 | 亚洲五月综合| 中文字幕人成乱码在线观看| 亚洲日本免费电影| 日韩三区免费| 国产精品极品国产中出| 亚洲深夜av| 麻豆视频在线看| 亚洲精品国产精品粉嫩| 亚洲爱爱视频| 国产精品啊v在线| 久久亚洲精品伦理| 88xx成人免费观看视频库| 日韩国产一二三区| 午夜久久免费观看| 国产一区二区三区四区二区| 色综合视频一区二区三区日韩 | 麻豆免费精品视频| 亚洲免费婷婷| 国产高潮在线| 911精品国产| 亚洲欧美久久| 秋霞影院一区二区三区| 欧美国产极品| 日韩美女精品| 亚洲欧美日韩专区| 欧美成人日韩| 韩国精品主播一区二区在线观看 | 香蕉国产精品| 亚洲www免费| 国产+成+人+亚洲欧洲在线| 日韩欧美在线精品| 国产视频一区免费看| 99久久夜色精品国产亚洲1000部| 麻豆国产精品| 久久国产欧美日韩精品| 亚洲制服欧美另类| 悠悠资源网久久精品| 丝袜av一区| 伊人久久av| 国产不卡av一区二区| 久久av网址| 国产精品久久久久久久久免费高清 | 日本中文字幕视频一区| 伊人久久成人| 亚洲午夜久久久久久尤物| 黄色在线网站噜噜噜| 开心激情综合| 精品久久视频| 久久一区精品| 国产精品美女久久久久久不卡| 日韩av一区二区三区四区| 亚洲综合中文| 日韩成人午夜精品| 欧美视频久久| 国产精品免费大片| 日韩一区中文| 日韩国产欧美视频| 日韩av不卡一区二区| 日本精品久久| 国产乱子精品一区二区在线观看| 69堂精品视频在线播放| 欧美日一区二区三区在线观看国产免 | 亚洲一级影院| 国内精品福利| 狠狠干成人综合网| 黄色成人在线网址| 欧美一区三区| 在线综合亚洲| 亚洲男人在线| 欧美三区不卡| 国产成人免费视频网站视频社区| 福利欧美精品在线| 久久精品国语| 亚洲激精日韩激精欧美精品| 每日更新成人在线视频| 色婷婷成人网| 国产欧美啪啪| 91欧美在线| 亚洲精品电影| 亚洲精品字幕| 国产日韩欧美在线播放不卡| 欧美日韩一区二区三区不卡视频 | 亚洲视频国产精品| 欧美日韩一区二区三区在线电影| 欧美国产极品| 视频二区不卡| 鲁大师成人一区二区三区 | 日韩专区一卡二卡| 亚洲精品三级| 国产麻豆精品| 日韩欧美一区二区三区在线视频 | 亚洲午夜精品久久久久久app| 欧美在线综合| 国产精品欧美日韩一区| 亚洲黄色网址| 久久亚洲国产精品一区二区| 欧美天堂一区| 狠狠躁少妇一区二区三区| 亚洲欧洲日本mm| 日韩精品久久久久久| 精品美女在线视频| 亚洲欧洲午夜| 麻豆久久久久久| 亚洲美女久久精品| 蜜臀91精品一区二区三区| 国产精品一区二区美女视频免费看| 97精品一区| 鲁大师成人一区二区三区| 国产精品xvideos88| 久久高清免费| 91大神在线观看线路一区| 国产a久久精品一区二区三区| 99成人在线| 欧美激情精品| 国产精品色网| 精品精品99| 视频一区二区三区中文字幕| 久久久亚洲欧洲日产| 自由日本语亚洲人高潮| 国产欧美欧美| 亚洲免费影视| 国产精品高颜值在线观看| 中文字幕亚洲在线观看| 日韩av有码| 日韩有码av| 激情五月综合| 精品视频亚洲| 亚洲精品婷婷| 91精品亚洲| 欧美91在线| 亚洲三级网址| 激情五月色综合国产精品| 免费精品一区| 亚洲欧美视频|