MySQL 5.5數(shù)據(jù)庫的多列分區(qū)是本文我們主要要介紹的內(nèi)容,本文我們通過一個(gè)實(shí)例來介紹這一部分內(nèi)容,接下來就讓我們一起來看看吧! 多列分區(qū) COLUMNS關(guān)鍵字現(xiàn)在允許字符串和日期列作為分區(qū)定義列,同時(shí)還允許使用多個(gè)列定義一個(gè)分區(qū),你可能在官方文檔中已經(jīng)看到了一些例子,如:
同樣還有PARTITION BY RANGE COLUMNS (a,b,c)等其它例子。由于我很長時(shí)間都在使用MySQL 5.1的分區(qū),我對(duì)多列分區(qū)的含義不太了解,LESS THAN (10,10)是什么意思?如果下一個(gè)分區(qū)是LESS THAN (10,20)會(huì)發(fā)生什么?相反,如果是(20,30)又會(huì)如何? 所有這些問題都需要一個(gè)答案,在回答之前,他們需要更好地理解我們?cè)谧鍪裁础?/p> 開始時(shí)可能有些混亂,當(dāng)所有分區(qū)有一個(gè)不同范圍的值時(shí),實(shí)際上,它只是在表的一個(gè)列上進(jìn)行了分區(qū),但事實(shí)并非如此,在下面的例子中
它和前面的表p1不一樣,如果你在表p1中插入(10,1,1),它將會(huì)進(jìn)入第一個(gè)分區(qū),相反,在表p1_single中,它將會(huì)進(jìn)入第二個(gè)分區(qū),其原因是(10,1)小于(10,10),如果你僅僅關(guān)注第一個(gè)值,你還沒有意識(shí)到你在比較一個(gè)元組,而不是一個(gè)單一的值。 現(xiàn)在我們來分析一下最難懂的地方,當(dāng)你需要確定某一行應(yīng)該放在哪里時(shí)會(huì)發(fā)生什么?你是如何確定類似(10,9) < (10,10)這種運(yùn)算的值的?答案其實(shí)很簡單,當(dāng)你對(duì)它們進(jìn)行排序時(shí),使用相同的方法計(jì)算兩條記錄的值。
如果有三列,表達(dá)式會(huì)更長,但不會(huì)更復(fù)雜。你首先在第一個(gè)項(xiàng)目上測(cè)試小于運(yùn)算,如果有兩個(gè)或更多的分區(qū)與之匹配,接著就測(cè)試第二個(gè)項(xiàng)目,如果不止一個(gè)候選分區(qū),那還需要測(cè)試第三個(gè)項(xiàng)目。 關(guān)于MySQL 5.5多列分區(qū)的知識(shí)就介紹到這里了,希望本次的介紹能夠?qū)δ兴鶐椭?/p> 原文出處:http://lujia35./blog/718899。 【編輯推薦】
【責(zé)任編輯:趙鵬 TEL:(010)68476606】 |
|