您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關MySQL 5.5中怎么實現分區功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
非整數列分區
任何使用過分區的人應該都遇到過不少問題,特別是面對非整數列分區時,MySQL 5.1只能處理整數列分區,如果你想在日期或字符串列上進行分區,你不得不使用函數對其進行轉換。
MySQL 5.5中新增了兩類分區方法,RANG和LIST分區法,同時在新的函數中增加了一個COLUMNS關鍵詞。我們假設有這樣一個表:
CREATE TABLE expenses (
expense_date DATE NOT NULL,
category VARCHAR(30),
amount DECIMAL (10,3) );
如果你想使用MySQL 5.1中的分區類型,那你必須將類型轉換成整數,需要使用一個額外的查找表,到了MySQL 5.5中,你可以不用再進行類型轉換了,如:
ALTER TABLE expenses PARTITION BY LIST COLUMNS (category) (
PARTITION p01 VALUES IN ( lodging, food),
PARTITION p02 VALUES IN ( flights, ground transportation),
PARTITION p03 VALUES IN ( leisure, customer entertainment),
PARTITION p04 VALUES IN ( communications),
PARTITION p05 VALUES IN ( fees) );
這樣的分區語句除了更加易讀外,對數據的組織和管理也非常清晰,上面的例子只對category列進行分區。
在MySQL 5.1中使用分區另一個讓人頭痛的問題是date類型(即日期列),你不能直接使用它們,必須使用YEAR或TO_DAYS轉換這些列,如:
/* 在MySQL 5.1中*/
CREATE TABLE t2
(
dt DATE
)
PARTITION BY RANGE (TO_DAYS(dt))
(
PARTITION p01 VALUES LESS THAN (TO_DAYS(2007-01-01)),
PARTITION p02 VALUES LESS THAN (TO_DAYS(2008-01-01)),
PARTITION p03 VALUES LESS THAN (TO_DAYS(2009-01-01)),
PARTITION p04 VALUES LESS THAN (MAXVALUE));
SHOW CREATE TABLE t2G
*************************** 1<span styl
看完上述內容,你們對MySQL 5.5中怎么實現分區功能有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。