草稿丢失,发表得不完整,稍后重新整理
mysql表分区技术能有效解决水平拆分和垂直拆分的不足,可操作性和效率都更优。以下是一些实验总结。
InnoDB引擎需先在配置文件中设置: innodb_file_per_table=1
--innodb : 主表.frm 保存表结构和分区数目一致的 .ibd 文件,用于保存数据和索引。
--myisam:主表.frm保存表结构定义,主表.par保存分区信息, 和分区数目一致的 .MYD文件,用于保存数据,.MDI文件用于索引。
range分区:
CREATE TABLE a(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME CHAR(20))ENGINE=INNODB CHARSET=utf8
PARTITION BY RANGE(id)(
PARTITION p1 VALUES LESS THAN (100),
PARTITION p2 VALUES LESS THAN (200),
PARTITION p3 VALUES LESS THAN (300),
PARTITION p4 VALUES LESS THAN MAXVALUE);
----------建立一个以id 区间来划分的分别,当id 小于100时数据保存到p1分区,100到199时保存到p2分区,200到299时保存到p3分区,大于300时保存到p4分区;
[root@master test]#dir
a.frm a#P#p1.ibd a#P#p2.ibd a#P#p4.ibd db.opt
<