第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

為什么離散程度高的放前面呢?

這個(gè)聯(lián)合索引,放前面放后面代表什么?為什么離散程度高的放前面呢?知其然而不知其所以然,不太好

正在回答

3 回答

簡(jiǎn)單解釋,組合索引index(a,b) 會(huì)創(chuàng)建基于a,ab創(chuàng)建兩個(gè)索引。你想一下創(chuàng)建索引的原則是什么?如果某列的離散度很低,一個(gè)表有100w行數(shù)據(jù),該列只有兩種不同的值,你會(huì)在該列上創(chuàng)建索引嗎? 所以就明白了,如果a的離散度很低,在a上創(chuàng)建索引和前面分析的原則是不是矛盾了。總結(jié),就是要降低掃描索引的消耗,為什么離散度高了可以降低,這是btree的結(jié)構(gòu)問(wèn)題

2 回復(fù) 有任何疑惑可以回復(fù)我~
#1

greenhandc 提問(wèn)者

非常感謝!
2017-07-06 回復(fù) 有任何疑惑可以回復(fù)我~

應(yīng)該按老師說(shuō)的好一點(diǎn),自己試一下查詢的耗時(shí)就知道。

0 回復(fù) 有任何疑惑可以回復(fù)我~

知乎上有個(gè)答案跟老師說(shuō)的完全相反,不知道到底該怎么理解。http://www.zhihu.com/question/31109426


作者:Lawrence.li
鏈接:http://www.zhihu.com/question/31109426/answer/66326216
來(lái)源:知乎
著作權(quán)歸作者所有,轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)。

這里涉及兩個(gè)知識(shí)點(diǎn):最左前綴left-prefix,列基數(shù)cardinality

最左前綴,可以理解為在復(fù)合索引中,越是左邊越好

因?yàn)榉謩e對(duì)A,B,C三個(gè)列建聯(lián)合索引index,實(shí)際上是建立3個(gè)索引,每個(gè)索引都包含A
A,B,C
A,B
A

列基數(shù),是指它所容納的所有非重復(fù)值的個(gè)數(shù),可以理解為 ?distinct(某列)后的結(jié)果

比如某個(gè)列包含值1,3,7,4,7,3,那么它的基數(shù)就是4了

列基數(shù)越大,重復(fù)值越少,需要建索引,因?yàn)槿绻沉械闹刀际侵貜?fù)的就沒(méi)必要建索引了

是(`DistriType`,`DistriButTime`) 這樣建?還是這樣建 (`DistriButTime`,`DistriType`) ?

count一下就知道了

count(distinct DistriType) ?與 count(distinct DistriButTime)比較

猜測(cè)肯定是前者<后者,所以聯(lián)合索引把DistriTyp放左邊更優(yōu)

再舉一個(gè)例子,一本字典,記錄了所有的姓名

分別用兩個(gè)字段,第一列:姓 ? ?第二列:名

很明顯 count(distinct 姓) 要比 count(distinct 名) 要少

因?yàn)榘偌倚眨帐现挥幸话賯€(gè),而名字可以自由組合很多個(gè)

劉 ? ?燁
劉 ? ?德華
劉 ? ?爾達(dá)

張 ? ?震
張 ? ?學(xué)友

所以如果要建立聯(lián)合索引,肯定是 ? key index ( 姓,名),先排姓氏,再排名字


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

likeflower950

我認(rèn)為不盡然!你應(yīng)該想說(shuō)明是最后一條吧,就是按照字典的那個(gè)例子!字典這樣創(chuàng)建時(shí)因?yàn)樾蘸兔质且粋€(gè)整體,復(fù)合人們的讀習(xí)慣,但是計(jì)算機(jī)并不需要這樣的習(xí)慣,你完全可以先按照名字索引,再按照姓索引,index(名字,姓),因?yàn)槊种貜?fù)的少,那么你想找劉德華的話,你第一步確定了5個(gè)叫德華的,然后再?gòu)倪@5個(gè)中找一個(gè)姓劉的就確定了記錄,但是如果按照你發(fā)的那個(gè),那你第一步可能確定出來(lái)1000個(gè)姓劉的,第二步需要從這1000個(gè)劉姓中尋找叫德華的人。這樣的順序明顯沒(méi)有第一個(gè)好!
2017-06-28 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

為什么離散程度高的放前面呢?

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)