91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么進行mysql索引覆蓋掃描優化

發布時間:2021-11-16 14:48:05 來源:億速云 閱讀:288 作者:柒染 欄目:MySQL數據庫

本篇文章為大家展示了怎么進行mysql索引覆蓋掃描優化,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

覆蓋掃描即直接在索引中掃描出結果返回給客戶端,不需要根據索引再去表上掃描結果,這種掃描方式效率高。當extra列出現Using index時即為覆蓋掃描

現生產環境有個語句要優化,

select create_day,remarks_format,count(*) from CDM.cdm_account_itemized GROUP BY create_day,remarks_format;

執行需要20秒,看下執行計劃

mysql> explain select create_day,remarks_format,count(*) from CDM.cdm_account_itemized GROUP BY create_day,remarks_format;


| id | select_type | table                | type | possible_keys | key  | key_len | ref  | rows     | Extra                           |


|  1 | SIMPLE      | cdm_account_itemized | ALL  | NULL          | NULL | NULL    | NULL | 10123349 | Using temporary; Using filesort |


1 row in set (0.00 sec)

走了全表掃描并使用了Using filesort臨時文件排序;create_day和remarks_format 字段都是有索引的,但并沒有走索引

mysql> explain select create_day,count(*) from CDM.cdm_account_itemized GROUP BY create_day  ;


| id | select_type | table                | type  | possible_keys                   | key                             | key_len | ref  | rows     | Extra       |


|  1 | SIMPLE      | cdm_account_itemized | index | biz_account_itemized_create_day | biz_account_itemized_create_day | 25      | NULL | 10123349 | Using index |

+----+-------------+----------------------+-------+---------------------------------+---------------------------------+---------+------+----------+-------------+

1 row in set (0.00 sec)

只針對create_day進行分組統計的時候可以看到走的索引覆蓋掃描Using index,執行只要5秒

mysql> explain select remarks_format,count(*) from CDM.cdm_account_itemized GROUP BY remarks_format;


| id | select_type | table                | type  | possible_keys                   | key                             | key_len | ref  | rows     | Extra       |


|  1 | SIMPLE      | cdm_account_itemized | index | biz_account_itemized_create_day | biz_account_itemized_create_day | 25      | NULL | 10123349 | Using index |


1 row in set (0.00 sec)

只針對 remarks_format進行分組統計的時候可以看到也走的索引覆蓋掃描Using index,執行只要4秒

看樣子只能增加個組合索引了

mysql> alter table CDM.cdm_account_itemized add index create_day_remarks_format(create_day,remarks_format)

加完索引再看下執行計劃

mysql> explain  select create_day,remarks_format,count(*) from CDM.cdm_account_itemized GROUP BY create_day,remarks_format;


| id | select_type | table                | type  | possible_keys             | key                       | key_len | ref  | rows     | Extra       |


|  1 | SIMPLE      | cdm_account_itemized | index | create_day_remarks_format | create_day_remarks_format | 793     | NULL | 10123349 | Using index |


1 row in set (0.00 sec)

這個時候執行計劃走的是create_day_remarks_format索引的索引覆蓋掃描Using index,但是執行還是需要20秒。這可能和統計信息有關,實際的執行計劃和explain出來的不一樣

ANALYZE收集下統計信息

mysql> ANALYZE table  CDM.cdm_account_itemized;


| Table                    | Op      | Msg_type | Msg_text |


| CDM.cdm_account_itemized | analyze | status   | OK       |


1 row in set (1.64 sec)

再次執行只要5秒多就返回結果了

mysql> select create_day,remarks_format,count(*) from CDM.cdm_account_itemized GROUP BY create_day,remarks_format;

5.580s
結論:select后面的字段在同一個索引中才會走索引覆蓋掃描

上述內容就是怎么進行mysql索引覆蓋掃描優化,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通海县| 玉山县| 南雄市| 宝鸡市| 鹤峰县| 民丰县| 三明市| 镇原县| 乌兰浩特市| 曲靖市| 松桃| 黎川县| 岑溪市| 张掖市| 阿鲁科尔沁旗| 左贡县| 昌吉市| 河北区| 同江市| 镇江市| 徐汇区| 突泉县| 安平县| 苏尼特左旗| 石楼县| 高阳县| 罗江县| 泸溪县| 文成县| 伊金霍洛旗| 宣武区| 茶陵县| 乳源| 南康市| 读书| 江西省| 马关县| 沧州市| 肥西县| 江油市| 麻江县|