国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL數據庫表分區注意事項大全【推薦】

2024-07-24 12:51:01
字體:
來源:轉載
供稿:網友

表分區與數據庫分區是不一樣的那么碰到表分區使用時我們要注意一些什么事情呢,今天我們來看一篇關于MySQL數據庫表分區注意事項的細節。

1、分區列索引約束

若表有primary key或unique key,則分區表的分區列必須包含在primary key或unique key列表里,這是為了確保主鍵的效率,否則同一主鍵區的東西一個在A分區,一個在B分區,顯然會比較麻煩。

2、各分區類型條件

range 每個分區包含那些分區表達式的值位于一個給定的連續區間內的行。這些區間要連續且不能相互重疊

list只支持整形字段或返回整形數的表達式,每個分區列表里的值列表必須整數

hash類型只支持整形字段或返回整形數的表達式

key類型只支持列名形式(可一個或多個列名),不支持表達式

3、分區可用函數

ABS()

CEILING() (see CEILING() and FLOOR(), immediately following this list)

DAY()

DAYOFMONTH()

DAYOFWEEK()

DAYOFYEAR()

DATEDIFF()

EXTRACT()

FLOOR() (see CEILING() and FLOOR(), immediately following this list)

HOUR()

MICROSECOND()

MINUTE()

MOD()

MONTH()

QUARTER()

SECOND()

TIME_TO_SEC()

TO_DAYS()

WEEKDAY()

YEAR()

YEARWEEK()

注意:

因為分區函數不包括FROM_UNIXTIME函數,所以用時間戳轉時間來分區就無法實現了,只能用date或者datetime來分區

例如按年我們可以用:

PARTITION BY RANGE (YEAR(date))

按月:

PARTITION BY RANGE(date div 100)

#div 會把日期變成整數,例如:2014-12-01 -> 20141201、100就是從后面去掉兩位,最后結果是201412

一個訂單做分區的例子:

CREATE TABLE `order` ( `order_id` bigint(19) NOT NULL DEFAULT '0' COMMENT '訂單ID:年月日時分秒12位 7位隨機數', `date` date NOT NULL DEFAULT '0000-00-00' COMMENT '訂單日期', `amount` int(11) DEFAULT NULL COMMENT '支付金額,單位分', `status` tinyint(1) DEFAULT '0' COMMENT '0:等待支付 1:支付成功 2:支付失敗 3:驗證失敗', `addtime` int(10) DEFAULT NULL COMMENT '訂單添加時間', PRIMARY KEY (`order_id`,`date`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;

因為我們沒法用時間戳來做按時間分區,所以添加了一個date字段,這個字段和order_id一起作為主鍵,我們知道分區的列一定要放到主鍵里面去的。下面我們用date計算成年月組合來分區

ALTER TABLE order PARTITION BY RANGE( date DIV 100)( PARTITION p_2014_06 VALUES LESS THAN (201407), PARTITION p_2014_07 VALUES LESS THAN (201408), PARTITION p_2014_08 VALUES LESS THAN (201409), PARTITION p_2014_09 VALUES LESS THAN (201410), PARTITION p_2014_10 VALUES LESS THAN (201411), PARTITION p_catch_all VALUES LESS THAN MAXVALUE);
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 马龙县| 安塞县| 江川县| 玉山县| 武冈市| 营口市| 河间市| 宣武区| 宁津县| 阿勒泰市| 长武县| 酉阳| 海宁市| 大埔县| 徐闻县| 金昌市| 垣曲县| 福清市| 永修县| 濉溪县| 洛隆县| 天柱县| 东平县| 龙南县| 和林格尔县| 吉隆县| 元江| 佛学| 古蔺县| 无锡市| 银川市| 辽阳县| 上饶县| 剑河县| 涞水县| 大港区| 平谷区| 嵩明县| 连城县| 探索| 日喀则市|