溫馨提示×

溫馨提示×

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

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

【Mysql】快速定位不合理的索引——MySQL索引調(diào)優(yōu)(一)

發(fā)布時間:2020-08-11 08:10:34 來源:ITPUB博客 閱讀:157 作者:小亮520cl 欄目:MySQL數(shù)據(jù)庫
原文地址:http://mp.weixin.qq.com/s?__biz=MjM5MjIxNDA4NA==&mid=401131835&idx=1&sn=37c5fd9d3d8670fb379a1e0565e50eeb&scene=0#wechat_redirect

創(chuàng)建索引是門技術活,開發(fā)DBA的工作之一就是配合應用創(chuàng)建最優(yōu)的索引。然大部分公司并沒有開發(fā)DBA一職,大多數(shù)的索引創(chuàng)建需要由程序開發(fā)人員自己完成,這導致的一個后果是,索引創(chuàng)建的好與壞大部分情況下需要看這個程序猿的氣質(zhì)。


通常,Inside君通過下面這條SQL語句來檢視創(chuàng)建的索引(同時喝著咖啡,聽著音樂),大部分情況下可以定位出90%的索引創(chuàng)建不合理情況:

可惜的是上述SQL語句并不能工作在MySQL 5.6版本下(即使最新的MySQL 5.6.28版本),因為目前5.6的STATISTICS表中關于Cardinality的統(tǒng)計是錯誤的!?。【唧w可見MySQL bugs #78066。但是,表innodb_index_stats中關于Cardinality值得統(tǒng)計依然是正確的,那么問題來了:

  1. 有誰知道5.6下上述SQL該如何改寫?

  2. 如何修復5.6下的Cardinality Bug?





版本《=5.6


  1. 查找未被使用的索引:
  2. mysql> select OBJECT_SCHEMA,OBJECT_NAME,INDEX_NAME from performance_schema.table_io_waits_summary_by_index_usage where INDEX_NAME is not null  and COUNT_STAR=0 and OBJECT_SCHEMA='xdq' and OBJECT_NAME='order_reasons_dispute' order by OBJECT_SCHEMA,OBJECT_NAME;
    +---------------+-----------------------+------------+
    | OBJECT_SCHEMA | OBJECT_NAME           | INDEX_NAME |
    +---------------+-----------------------+------------+
    | xdq           | order_reasons_dispute | PRIMARY    |
    | xdq           | order_reasons_dispute | s_uid      |
    | xdq           | order_reasons_dispute | b_uid      |
    | xdq           | order_reasons_dispute | c_time     |
    | xdq           | order_reasons_dispute | r_time     |
    +---------------+-----------------------+------------+
    5 rows in set (0.15 sec)


版本=5.7
  1. mysql> select * from sys.schema_redundant_indexes   冗余索引
  2. mysql> select * from schema_unused_indexes ;      未使用索引  --詳見mysql5.7 sys schema視圖詳解   
  3. mysql> select * from statements_with_full_table_scans; 使用全表掃描的sql語句 等




向AI問一下細節(jié)

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

AI