真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql中怎么創(chuàng)建表分區(qū)

今天就跟大家聊聊有關(guān)MySQL中怎么創(chuàng)建表分區(qū),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括蠡縣網(wǎng)站建設(shè)、蠡縣網(wǎng)站制作、蠡縣網(wǎng)頁(yè)制作以及蠡縣網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,蠡縣網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到蠡縣省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

1.RANGE 分區(qū):

CREATE TABLE t5(id INT,dt DATETIME NOT NULL
)
PARTITION BY RANGE (TO_DAYS(dt)) (
    PARTITION p0 VALUES LESS THAN (TO_DAYS('2014-01-01')),
    PARTITION p1 VALUES LESS THAN (TO_DAYS('2014-02-01')),
    PARTITION p2 VALUES LESS THAN (TO_DAYS('2014-03-01')),
    PARTITION p3 VALUES LESS THAN MAXVALUE);

注意range分區(qū)不能直接對(duì)日期型數(shù)據(jù)分區(qū),所以要對(duì)分日期進(jìn)行分區(qū),需要變通一下,將日期轉(zhuǎn)換成int型才行。

CREATE TABLE t5(id INT,dt DATETIME NOT NULL
)
PARTITION BY RANGE (dt) (
    PARTITION p0 VALUES LESS THAN ('2014-01-02'),
    PARTITION p1 VALUES LESS THAN ('2014-01-03'),
    PARTITION p2 VALUES LESS THAN ('2014-01-04'),
    PARTITION p3 VALUES LESS THAN MAXVALUE);

如果使用上面的語(yǔ)句,直接使用日期列進(jìn)行分區(qū),則會(huì)出現(xiàn)以下錯(cuò)誤:
錯(cuò)誤碼: 1697
VALUES value for partition 'p0' must have type INT

2.LIST分區(qū)

CREATE TABLE t6
(userid  INT NOT NULL ,
 usertype INT NOT NULL
)
PARTITION BY LIST(usertype)
(
PARTITION p1 VALUES IN  (1),
PARTITION p2 VALUES IN  (2),
PARTITION p3 VALUES IN  (3)
);

3.HASH分區(qū)

HASH分區(qū)主要用來(lái)確保數(shù)據(jù)在預(yù)先確定數(shù)目的分區(qū)中平均分布。只需指定一個(gè)列值或表達(dá)式作為哈希列,然后指定分區(qū)數(shù)據(jù)即可。

CREATE TABLE t8
(userid  INT NOT NULL ,
 dt DATE
)
PARTITION BY HASH(MONTH(dt))
PARTITIONS 6;
HASH分區(qū)有個(gè)問(wèn)題,就是where條件是指定的一個(gè)范圍的話,將會(huì)掃描所有分區(qū),這就達(dá)不到使用分區(qū)表來(lái)減少掃描范圍獲得性能的提高的目的。尤其是使用達(dá)式作為分區(qū)關(guān)鍵字時(shí),一定要注意類型,最好是數(shù)值型。
EXPLAIN PARTITIONS
SELECT COUNT(*) FROM t8 WHERE dt>'2013-08-01‘
以上語(yǔ)句就是掃描所有分區(qū).

4.key分區(qū)

Key分區(qū)類型于HASH分區(qū),HASH分區(qū)使用的用戶定義的表達(dá)式,而KEY分區(qū)的哈希函數(shù)是由MySQL 服務(wù)器提供,這些函數(shù)是基于與PASSWORD()一樣的運(yùn)算法則。它與Hash分區(qū)主要的區(qū)別是,分區(qū)依據(jù)只能是一個(gè)或多個(gè)列名的一個(gè)列表。

CREATE TABLE t9
(userid  INT NOT NULL ,
 dt DATE
)
PARTITION BY HASH(dt)
PARTITIONS 6;
Key分區(qū)和HASH分區(qū)一樣,有范圍掃描的問(wèn)題。

5.復(fù)合分區(qū)

1)RANGE - HASH(范圍哈希)復(fù)合分區(qū)
CREATE TABLE t11
(id INT NOT NULL ,
dt DATE
)
PARTITION BY RANGE(id)
SUBPARTITION BY HASH(YEAR(dt))
SUBPARTITIONS 4
(
PARTITION p1 VALUES LESS THAN (100000),
PARTITION p2 VALUES LESS THAN maxvalue
);

2)RANGE- KEY復(fù)合分區(qū)
CREATE TABLE t12
(id  INT NOT NULL ,
dt DATE
)
PARTITION BY RANGE(id)
SUBPARTITION BY KEY(dt)
SUBPARTITIONS 4
(
PARTITION p1 VALUES LESS THAN (100000),
PARTITION p2 VALUES LESS THAN maxvalue
);

3)LIST - HASH復(fù)合分區(qū)
CREATE TABLE t13 (
userid INT,
usertype INT
)
PARTITION BY LIST (usertype)
SUBPARTITION BY HASH(userid)
SUBPARTITIONS 3
(
PARTITION p1 VALUES IN  (1),
PARTITION p2 VALUES IN  (2),
PARTITION p3 VALUES IN  (3)
)
;

4)LIST - KEY 復(fù)合分區(qū)
CREATE TABLE t14 (
userid INT,
usertype INT
)
PARTITION BY LIST (usertype)
SUBPARTITION BY KEY(userid)
SUBPARTITIONS 3
(
PARTITION p1 VALUES IN  (1),
PARTITION p2 VALUES IN  (2),
PARTITION p3 VALUES IN  (3)
)
;

看完上述內(nèi)容,你們對(duì)mysql中怎么創(chuàng)建表分區(qū)有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


網(wǎng)頁(yè)名稱:mysql中怎么創(chuàng)建表分區(qū)
當(dāng)前地址:http://weahome.cn/article/jdgsei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部