您好,登錄后才能下訂單哦!
本篇內容介紹了“MySQL分區表有哪些知識點”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
MySQL分區表
1) 分區類型
? RANGE:范圍應該連續但不重疊,使用VALUES LESS THAN 運算符進行定義。
? LIST:像在由RANGE 進行分區一樣,必須顯式定義每個分區。
? HASH:對要插入表中的行的列值進行操作。
? KEY:與HASH 類似,不同之處在于僅提供要評估的一個或多個列并且MySQL 服務器提供散列函數。它適用于所有允許的列類型。
? COLUMNS:RANGE 和LIST 分區上的變體。COLUMNS 分區允許在分區鍵中使用一個或多個列。在以下情況時將考慮所有這些列:將行放入分區中,以及確定將檢查哪些分區來匹配分區刪改中的行。
- RANGE COLUMNS 和LIST COLUMNS 分區支持使用非整數列(以及前面列出的其他數據類型)來定義值范圍或列表成員。
? LINEAR:MySQL 還支持線性散列,其不同于常規散列,線性散列使用線性2 的冪算法,而常規散列使用散列函數值的模。
2) 確認服務器是否支持分區
Mysql>show plugins \G
Name: partition
Status: ACTIVE
Type: STORAGE ENGINE
Library: NULL
License: PROPRIETARY
禁用分區支持:
shell> mysqld --skip-partition
– partition 插件現在具有值DISABLED
3) 創建分區
(root@localhost) [mydb1]> create table tt(f1 int,f2 varchar(20)) partition by range(f1)
(
partition tt_p1 values less than(100),
partition tt_p2 values less than(1000),
partition tt_p3 values less than(10000),
partition tt_p4 values less than(maxvalue)
)
4) 查看表分區分區
(root@localhost) [mydb1]> show create table tt;
(root@localhost) [mydb1]> show table status like 'tt' \G;
(root@localhost)[mydb1]> select table_name ,group_concat(partition_name) pn from information_schema.partitions where table_schema='mydb1' group by table_name;
+------------+-------------------------+
| table_name | pn |
+------------+-------------------------+
| tt | tt_p1,tt_p2,tt_p3,tt_p4 |
+------------+-------------------------+
(root@localhost) [mydb1]> EXPLAIN PARTITIONS SELECT * FROM tt \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: tt
partitions: tt_p1,tt_p2,tt_p3,tt_p4
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 1
filtered: 100.00
Extra: NULL
1 row in set, 2 warnings (0.00 sec)
5) 分區限制
?常規
–每個表的最大分區數為8192。
–不支持空間類型。
–不能對臨時表進行分區。
–不能對日志表進行分區。
?外鍵和索引
–不支持外鍵。
–不支持FULLTEXT 索引。
–無全局索引:每個分區都有各自的索引。
?僅可能在以下情況下進行子分區:
–通過RANGE 和LIST 進行分區時。
–通過LINEAR HASH 或LINEAR KEY 進行時。
“MySQL分區表有哪些知識點”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。