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

首頁 > 數據庫 > MySQL > 正文

深入淺析MySQL COLUMNS分區

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

介紹

COLUMN分區是5.5開始引入的分區功能,只有RANGE COLUMN和LIST COLUMN這兩種分區;支持整形、日期、字符串;RANGE和LIST的分區方式非常的相似。

COLUMNS和RANGE和LIST分區的區別

1.針對日期字段的分區就不需要再使用函數進行轉換了,例如針對date字段進行分區不需要再使用YEAR()表達式進行轉換。

2.COLUMN分區支持多個字段作為分區鍵但是不支持表達式作為分區鍵。

COLUMNS支持的類型

整形支持:tinyint,smallint,mediumint,int,bigint;不支持decimal和float

時間類型支持:date,datetime

字符類型支持:char,varchar,binary,varbinary;不支持text,blob

一、RANGE COLUMNS分區

1.日期字段分區

CREATE TABLE members (id INT,joined DATE NOT NULL)PARTITION BY RANGE COLUMNS(joined) (PARTITION a VALUES LESS THAN ('1960-01-01'),PARTITION b VALUES LESS THAN ('1970-01-01'),PARTITION c VALUES LESS THAN ('1980-01-01'),PARTITION d VALUES LESS THAN ('1990-01-01'),PARTITION e VALUES LESS THAN MAXVALUE);

1.插入測試數據

insert into members(id,joined) values(1,'1950-01-01'),(1,'1960-01-01'),(1,'1980-01-01'),(1,'1990-01-01');

2.查詢分區數據分布

SELECT PARTITION_NAME,PARTITION_METHOD,PARTITION_EXPRESSION,PARTITION_DESCRIPTION,TABLE_ROWS,SUBPARTITION_NAME,SUBPARTITION_METHOD,SUBPARTITION_EXPRESSION FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA=SCHEMA() AND TABLE_NAME='members';

當前有5個分區只插入了4條記錄,其中C分區是沒有記錄的,結果和實際一樣。

3.分析執行計劃

explain select id,joined from tb_partition.members where joined=YEAR(now());explain select id,joined from tb_partition.members where joined='1963-01-01';

第一條查詢使用了函數導致查詢沒有走具體的分區而是掃描的所有的分區,而第二條查詢執行語句查找具體的分區。

2.多個字段組合分區

CREATE TABLE rcx (a INT,b INT)PARTITION BY RANGE COLUMNS(a,b) (PARTITION p0 VALUES LESS THAN (5,10),PARTITION p1 VALUES LESS THAN (10,20),PARTITION p2 VALUES LESS THAN (15,30),PARTITION p3 VALUES LESS THAN (MAXVALUE,MAXVALUE));

注意:多字段的分區鍵比較是基于數組的比較。它先用插入的數據的第一個字段值和分區的第一個值進行比較,如果插入的第一個值小于分區的第一個值那么就不需要比較第二個值就屬于該分區;如果第一個值等于分區的第一個值,開始比較第二個值同樣如果第二個值小于分區的第二個值那么就屬于該分區。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 内乡县| 明星| 酒泉市| 资阳市| 涞水县| 昌宁县| 临颍县| 溧阳市| 平昌县| 乐东| 杭锦旗| 长顺县| 黄平县| 剑阁县| 稻城县| 招远市| 梨树县| 桐城市| 墨玉县| 长乐市| 平山县| 炎陵县| 西安市| 长兴县| 射洪县| 留坝县| 马边| 马公市| 曲麻莱县| 乌审旗| 宝兴县| 宣恩县| 高青县| 新晃| 定远县| 桑日县| 台南县| 广灵县| 沭阳县| 华宁县| 红安县|