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

首頁 > 數據庫 > MySQL > 正文

Mysql數據表分區技術PARTITION淺析

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

在這一章節里, 我們來了解下 Mysql 中的分區技術 (RANGE, LIST, HASH)
 
Mysql 的分區技術與水平分表有點類似, 但是它是在邏輯層進行的水平分表, 對于應用而言它還是一張表, 換句話說: 分區不是實際真正的對一張表進行拆分,分區之后表還是一個表,它是把存儲文件進行拆分。

在 Mysql 5.1(后) 有了幾種分區類型:
 
RANGE分區: 基于屬于一個給定連續區間的列值, 把多行分配給分區

LIST分區: 類似于按 RANGE 分區, 區別在于 LIST 分區是基于列值匹配一個離散值集合中的某個值來進行選擇

HASH分區: 基于用戶定義的表達式的返回值來進行選擇分區, 該表達式使用將要插入到表中的這些行的列值進行計算, 這個函數可以包含 Mysql 中有效的、產生非負整數值的任何表達式

KEY分區: 累世于按 HASH 分區, 區別在于 KEY 分區只支持計算一列或多列, 且 Mysql 服務器提供其自身的哈希函數
 
分區應該注意的事項:

1、 做分區時,要么不定義主鍵,要么把分區字段加入到主鍵中
2、 分區字段不能為NULL,要不然怎么確定分區范圍呢,所以盡量 NOT NULL
 
首先你可以查看下你的 Mysql 版本是否支持 PARTITION

復制代碼 代碼如下:

mysql> show plugins;
 
| partition    | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |

或者:
復制代碼 代碼如下:

mysql> show variables like "%part%";
 
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| have_partitioning | YES   |
+-------------------+-------+

RANGE 分區
 
假定你創建了一個如下的表, 該表保存有20家音像店的職員記錄, 這20家音像店的編號從1到20。 如果你想將其分成4個小分區, 那么你可以采用RANGE分區, 創建的數據庫表如下:
復制代碼 代碼如下:

mysql-> CREATE TABLE employees (
     ->     id INT NOT NULL,
     ->     fname VARCHAR(30),
     ->     lname VARCHAR(30),
     ->     hired DATE NOT NULL DEFAULT '1970-01-01',
     ->     separated DATE NOT NULL DEFAULT '9999-12-31',
     ->     job_code INT NOT NULL,
     ->     store_id INT NOT NULL
     -> ) ENGINE=Myisam DEFAULT CHARSET=utf8
     -> PARTITION BY RANGE (store_id) (
     ->     PARTITION P0 VALUES LESS THAN (6),
     ->     PARTITION P1 VALUES LESS THAN (11),
     ->     PARTITION P2 VALUES LESS THAN (16),
     ->     PARTITION P3 VALUES LESS THAN (21)
     -> );
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 渑池县| 商水县| 平远县| 西林县| 静乐县| 翼城县| 澜沧| 云南省| 成安县| 琼海市| 博白县| 永福县| 中方县| 中宁县| 龙胜| 沈阳市| 樟树市| 镇赉县| 湟中县| 宣汉县| 石首市| 镇赉县| 会理县| 浮山县| 青浦区| 蕉岭县| 河北区| 上高县| 新邵县| 简阳市| 滨海县| 金堂县| 大兴区| 鲜城| 阜康市| 新干县| 望都县| 灌南县| 汕尾市| 汕尾市| 应城市|