麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MySQL > 正文

詳解mysql中的冗余和重復索引

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

mysql/251908.html">mysql允許在相同列上創建多個索引,無論是有意還是無意,mysql需要單獨維護重復的索引,并且優化器在優化查詢的時候也需要逐個地進行考慮,這會影響性能。

  重復索引是指的在相同的列上按照相同的順序創建的相同類型的索引,應該避免這樣創建重復索引,發現以后也應該立即刪除。但,在相同的列上創建不同類型的索引來滿足不同的查詢需求是可以的。

CREATE TABLE test( ID INT NOT NULL PRIMARY KEY, A INT NOT NULL, B INT NOT NULL, UNIQUE(ID), INDEX(ID),) ENGINE=InnoDB;

這段SQL創建了3個重復索引。通常并沒有理由這么做。

  冗余索引和重復索引有一些不同,如果創建了索引(a,b),再創建索引(a)就是冗余索引,因為這只是前面一個索引的前綴索引,因此(a,b)也可以當作(a)來使用,但是(b,a)就不是冗余索引,索引(b)也不是,因為b不是索引(a,b)的最左前綴列,另外,其他不同類型的索引在相同列上創建(如哈希索引和全文索引)不會是B-Tree索引的冗余索引,而無論覆蓋的索引列是什么。

  冗余索引通常發生再為表添加新索引的時候。例如,有人可能會增加一個新的索引(A,B)而不是擴展以后的索引(A)。還有一種情況是將一個索引擴展為(A,ID),其中ID是主鍵,對于InnoDB來說主鍵已經包含在二級索引中了,所以這也是冗余的。

  大多數情況下都不需要冗余索引,應該盡量擴展已有的索引而不是創建新索引,但也有時候處于性能方面的考慮需要冗余索引,因為擴展已有的索引會導致其變得太大,從而影響其他使用該索引的查詢性能。如:如果在整數列上有一個索引,現在需要額外增加一個很長的varchar列來擴展該索引,那么性可能會急劇下降,特別是有查詢把這個索引當作覆蓋索引,或者這是myisam表并且有很多范圍查詢的時候(由于myisam的前綴壓縮)

  比如,有一張userinfo表。這個表有1000000條數據,對每個state_id值大概有20000條記錄。在state_id有一個索引,那么下面的SQL我們稱之為Q1

SELECT count(*) FROM userinfo WHERE state_id=5; --Q1

改查詢的執行速度大概是每秒115次(QPS)

  還有一個SQL,我們稱之為Q2

SELECT state_id,city,address FROM userinfo WHERE state_id=5; --Q2

這個查詢的QPS是10,提升該索引性能最簡單的辦法就是狂戰索引為(state_id,city,address),讓索引能覆蓋查詢:

ALERT TABLE userinfo ADD KEY state_id_2(state_id,city,address);

注:state_id已經有索引了,根據前面的概念,這是一個冗余索引而不是重復索引)

怎么找出冗余索引和重復索引呢?

1.可以使用Shlomi Noach的common_schema中的一些試圖來定位,common_schema是一系列可以安裝到服務器上的常用的存儲和試圖。

2.可以使用Percona Toolkit中的pt_duplicate-key-checker,該工具通過分析表結構來找出冗余和重復的索引。

總結

以上就是本文關于詳解mysql中的冗余和重復索引的全部內容,希望對大家有所幫助。,如有不足之處,歡迎留言指出,小編會及時回復大家并進行修改,感謝朋友們對本站的支持!

 



注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久www成人免费精品 | 羞羞视频免费网站含羞草 | 成人在线观看地址 | 色中色在线视频 | 一及毛片视频 | 国产精品久久久久av | 毛片免费网 | 香蕉久草视频 | 免费国产网站 | av电影在线免费观看 | 欧美亚洲国产成人 | 高清国产午夜精品久久久久久 | 国产成年人网站 | 美女羞羞视频在线观看 | 国产一区国产二区在线观看 | 国产精品久久久久影院老司 | av播放在线 | 黄视频免费在线 | 91福利免费视频 | 91麻豆精品国产91久久久无需广告 | 国产在线精品一区二区 | 黄片毛片一级 | 国产精品爱久久久久久久 | 国产亚洲精品成人a | 小视频成人 | 色99久久 | 91成人在线免费视频 | 亚洲综合色视频在线观看 | 欧美1区2区在线观看 | 国产精品久久久久久久久久大牛 | 视频一区 中文字幕 | 国产成人精品区 | 福利四区| aaaaa国产欧美一区二区 | 日韩精品网站在线观看 | 天天夜干 | 久久久久久麻豆 | 色诱亚洲精品久久久久久 | 涩涩操 | 91成人午夜性a一级毛片 | 精品99在线视频 |