六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

mysql中對(duì)于冗余與重復(fù)索引

[摘要]mysql允許在相同列上創(chuàng)建多個(gè)索引,無(wú)論是有意還是無(wú)意,mysql需要單獨(dú)維護(hù)重復(fù)的索引,并且優(yōu)化器在優(yōu)化查詢的時(shí)候也需要逐個(gè)地進(jìn)行考慮,這會(huì)影響性能。  重復(fù)索引是指的在相同的列上按照相同的順序...
mysql允許在相同列上創(chuàng)建多個(gè)索引,無(wú)論是有意還是無(wú)意,mysql需要單獨(dú)維護(hù)重復(fù)的索引,并且優(yōu)化器在優(yōu)化查詢的時(shí)候也需要逐個(gè)地進(jìn)行考慮,這會(huì)影響性能。

  重復(fù)索引是指的在相同的列上按照相同的順序創(chuàng)建的相同類型的索引,應(yīng)該避免這樣創(chuàng)建重復(fù)索引,發(fā)現(xiàn)以后也應(yīng)該立即刪除。但,在相同的列上創(chuàng)建不同類型的索引來(lái)滿足不同的查詢需求是可以的。


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

  這段SQL創(chuàng)建了3個(gè)重復(fù)索引。通常并沒(méi)有理由這么做。

  冗余索引和重復(fù)索引有一些不同,如果創(chuàng)建了索引(a,b),再創(chuàng)建索引(a)就是冗余索引,因?yàn)檫@只是前面一個(gè)索引的前綴索引,因此(a,b)也可以當(dāng)作(a)來(lái)使用,但是(b,a)就不是冗余索引,索引(b)也不是,因?yàn)閎不是索引(a,b)的最左前綴列,另外,其他不同類型的索引在相同列上創(chuàng)建(如哈希索引和全文索引)不會(huì)是B-Tree索引的冗余索引,而無(wú)論覆蓋的索引列是什么。

  冗余索引通常發(fā)生再為表添加新索引的時(shí)候。例如,有人可能會(huì)增加一個(gè)新的索引(A,B)而不是擴(kuò)展以后的索引(A)。還有一種情況是將一個(gè)索引擴(kuò)展為(A,ID),其中ID是主鍵,對(duì)于InnoDB來(lái)說(shuō)主鍵已經(jīng)包含在二級(jí)索引中了,所以這也是冗余的。

  大多數(shù)情況下都不需要冗余索引,應(yīng)該盡量擴(kuò)展已有的索引而不是創(chuàng)建新索引,但也有時(shí)候處于性能方面的考慮需要冗余索引,因?yàn)閿U(kuò)展已有的索引會(huì)導(dǎo)致其變得太大,從而影響其他使用該索引的查詢性能。如:如果在整數(shù)列上有一個(gè)索引,現(xiàn)在需要額外增加一個(gè)很長(zhǎng)的varchar列來(lái)擴(kuò)展該索引,那么性可能會(huì)急劇下降,特別是有查詢把這個(gè)索引當(dāng)作覆蓋索引,或者這是myisam表并且有很多范圍查詢的時(shí)候(由于myisam的前綴壓縮)

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


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

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

  還有一個(gè)SQL,我們稱之為Q2


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

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


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

  (注:state_id已經(jīng)有索引了,根據(jù)前面的概念,這是一個(gè)冗余索引而不是重復(fù)索引)

怎么找出冗余索引和重復(fù)索引呢?

1.可以使用Shlomi Noach的common_schema中的一些試圖來(lái)定位,common_schema是一系列可以安裝到服務(wù)器上的常用的存儲(chǔ)和試圖。

2.可以使用Percona Toolkit中的pt_duplicate-key-checker,該工具通過(guò)分析表結(jié)構(gòu)來(lái)找出冗余和重復(fù)的索引。

以上就是mysql中關(guān)于冗余和重復(fù)索引 的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。




主站蜘蛛池模板: 亚洲六区 | 欧美一级免费大片 | 亚洲乱码一二三四区乱码 | 真实的国产乱xxxx | 天堂网在线最新版www中文网 | 热久久国产欧美一区二区精品 | 收集最新中文国产中文字幕 | 青青青国产高清在线观看视频 | 首页 亚洲 欧美 制服 丝腿 | 色噜噜狠狠狠狠色综合久一 | 上色天天综合网 | 中国国产成人精品久久 | 日本视频播放免费线上观看 | 亚洲日日夜夜 | 天天影视色香欲性综合网网站 | 色在线网站免费观看 | 特级毛片全部免费播放a一级 | 天天搞天天搞 | 欧美野外性xxxxfeexxxx | 性免费网站 | 欧美一级性| 亚洲天天 | 天堂网在线资源 | 日韩第二页 | 伊人网伊人影院 | 欧美一区二区福利视频 | 亚洲高清视频在线 | 四虎影院免费网址 | 亚洲视频一区在线观看 | 日本一区二区三区精品国产 | 午夜免费网站 | 又粗又硬又大又爽免费观看 | 窝窝女人体国产午夜视频 | 日韩一区二区三区在线观看 | 下载一级毛片 | 亚洲丁香婷婷综合久久小说 | 天天干天天骑 | 欧美性野久久久久久久久 | 日本一区二区三区免费在线观看 | 无人精品乱码一区二区三区 | 最近新免费韩国视频资源 |