自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL 5.5 分區(qū)之多列分區(qū)詳解

數(shù)據(jù)庫(kù) MySQL
本文我們主要介紹了MySQL 5.5分區(qū)之多列分區(qū)的知識(shí),并給出了多列分區(qū)的實(shí)例,希望本次的介紹能夠?qū)δ兴鶐椭?/div>

MySQL 5.5數(shù)據(jù)庫(kù)的多列分區(qū)是本文我們主要要介紹的內(nèi)容,本文我們通過(guò)一個(gè)實(shí)例來(lái)介紹這一部分內(nèi)容,接下來(lái)就讓我們一起來(lái)看看吧!

多列分區(qū)

COLUMNS關(guān)鍵字現(xiàn)在允許字符串和日期列作為分區(qū)定義列,同時(shí)還允許使用多個(gè)列定義一個(gè)分區(qū),你可能在官方文檔中已經(jīng)看到了一些例子,如: 

  1. CREATE TABLE p1 (    
  2.   a INT,    
  3.   b INT,    
  4.   c INT   
  5. )    
  6. PARTITION BY RANGE COLUMNS (a,b)    
  7. (    
  8.   PARTITION p01 VALUES LESS THAN (10,20),    
  9.   PARTITION p02 VALUES LESS THAN (20,30),    
  10.   PARTITION p03 VALUES LESS THAN (30,40),    
  11.   PARTITION p04 VALUES LESS THAN (40,MAXVALUE),    
  12.   PARTITION p05 VALUES LESS THAN (MAXVALUE,MAXVALUE)    
  13. );    
  14.  
  15. CREATE TABLE p2 (    
  16.   a INT,    
  17.   b INT,    
  18.   c INT   
  19. )    
  20. PARTITION BY RANGE COLUMNS (a,b)    
  21. (    
  22.   PARTITION p01 VALUES LESS THAN (10,10),    
  23.   PARTITION p02 VALUES LESS THAN (10,20),    
  24.   PARTITION p03 VALUES LESS THAN (10,30),    
  25.   PARTITION p04 VALUES LESS THAN (10,MAXVALUE),    
  26.   PARTITION p05 VALUES LESS THAN (MAXVALUE,MAXVALUE)    
  27. )  

同樣還有PARTITION BY RANGE COLUMNS (a,b,c)等其它例子。由于我很長(zhǎng)時(shí)間都在使用MySQL 5.1的分區(qū),我對(duì)多列分區(qū)的含義不太了解,LESS THAN (10,10)是什么意思?如果下一個(gè)分區(qū)是LESS THAN (10,20)會(huì)發(fā)生什么?相反,如果是(20,30)又會(huì)如何?

所有這些問(wèn)題都需要一個(gè)答案,在回答之前,他們需要更好地理解我們?cè)谧鍪裁础?/p>

開(kāi)始時(shí)可能有些混亂,當(dāng)所有分區(qū)有一個(gè)不同范圍的值時(shí),實(shí)際上,它只是在表的一個(gè)列上進(jìn)行了分區(qū),但事實(shí)并非如此,在下面的例子中

  1. CREATE TABLE p1_single (    
  2.   a INT,    
  3.   b INT,    
  4.   c INT   
  5. )    
  6. PARTITION BY RANGE COLUMNS (a)    
  7. (    
  8.   PARTITION p01 VALUES LESS THAN (10),    
  9.   PARTITION p02 VALUES LESS THAN (20),    
  10.   PARTITION p03 VALUES LESS THAN (30),    
  11.   PARTITION p04 VALUES LESS THAN (40),    
  12.   PARTITION p05 VALUES LESS THAN (MAXVALUE)    
  13. );  

它和前面的表p1不一樣,如果你在表p1中插入(10,1,1),它將會(huì)進(jìn)入第一個(gè)分區(qū),相反,在表p1_single中,它將會(huì)進(jìn)入第二個(gè)分區(qū),其原因是(10,1)小于(10,10),如果你僅僅關(guān)注第一個(gè)值,你還沒(méi)有意識(shí)到你在比較一個(gè)元組,而不是一個(gè)單一的值。

現(xiàn)在我們來(lái)分析一下最難懂的地方,當(dāng)你需要確定某一行應(yīng)該放在哪里時(shí)會(huì)發(fā)生什么?你是如何確定類(lèi)似(10,9) < (10,10)這種運(yùn)算的值的?答案其實(shí)很簡(jiǎn)單,當(dāng)你對(duì)它們進(jìn)行排序時(shí),使用相同的方法計(jì)算兩條記錄的值。

  1. a=10    
  2. b=9    
  3. (a,b) < (10,10) ?    
  4. # evaluates to:    
  5. (a < 10)    
  6. OR   
  7. ((a = 10) AND ( b < 10))    
  8. # which translates to:    
  9. (10 < 10)    
  10. OR   
  11. ((1010 = 10) AND ( 9 < 10))  

如果有三列,表達(dá)式會(huì)更長(zhǎng),但不會(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.iteye.com/blog/718899。

【編輯推薦】

  1. 適合初學(xué)者的MySQL學(xué)習(xí)筆記之管理員常用操作總結(jié)
  2. 適合初學(xué)者的MySQL學(xué)習(xí)筆記之SELECT語(yǔ)句使用詳解
  3. MySQL數(shù)據(jù)庫(kù)存儲(chǔ)引擎之MyISAM和InnoDB的區(qū)別對(duì)比
  4. 適合初學(xué)者的MySQL學(xué)習(xí)筆記之ORDER BY子句使用詳解
  5. 適合初學(xué)者的MySQL學(xué)習(xí)筆記之MySQL常用命令操作技巧
責(zé)任編輯:趙鵬 來(lái)源: 博客園
相關(guān)推薦

2011-08-17 11:13:57

MySQL 5.5truncate分區(qū)

2011-08-17 11:00:51

MySQL 5.5非整數(shù)列分區(qū)

2011-08-17 12:48:09

MySQL 5.5分區(qū)

2023-10-11 13:42:21

2010-02-22 10:08:33

MySQL 5.5分區(qū)

2010-10-11 10:44:22

MySQL分區(qū)

2011-08-16 16:45:18

2017-05-22 20:29:29

Windows 10Windows分區(qū)方法

2011-01-18 09:51:59

Linux磁盤(pán)分區(qū)

2010-10-11 10:52:25

MySQL分區(qū)

2010-05-13 10:00:10

SQL Server

2021-12-29 16:13:03

鴻蒙HarmonyOS應(yīng)用

2010-05-04 17:07:14

Windows 7分區(qū)

2021-02-20 08:21:18

Hive動(dòng)態(tài)分區(qū)

2017-07-05 18:59:32

MySQL交換分區(qū)

2014-06-09 10:09:31

Linux磁盤(pán)分區(qū)

2009-11-24 09:28:11

linux分區(qū)大磁盤(pán)分區(qū)

2010-02-04 14:57:25

Linux分區(qū)方案

2011-09-19 14:57:16

2010-11-10 14:47:11

SQL Server創(chuàng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)