mysql分区的在表引擎 innodb和myisam的区别

作者:吴泽鑫 分类: Mysql 发布于:2016-4-9 23:41 ė4224次浏览 60条评论

myisam表结构都是独立表空间的,所以可以进行分区,但是对于innodb表的数据结构,首先要解决2个概念问题:什么是独立表空间和共享表空间。

什么是共享表空间和独立表空间?

共享表空间以及独立表空间都是针对数据的存储方式而言的。

共享表空间:某一数据库的所有表数据,索引文件全部放在一个文件中,默认这个共享表空间的文件路径在data目录下,默认文件名为: ibdata1初始化为10M。

独立表空间:每一个表都会生成以独立文件方式来进行存储,每一个表都有一个 。frm表描述文件,还有一个.ibd文件。其中这个文件包含了单独一个表的数据内容以及索引内容,默认情况下它的存储位置也是在表的位置之中


所以共享表空间的表是无法进行分区的,要想让inodb表结构的表分区,首先要让表设立独立表空间,做法如下:

修改/etc/my.cnf以下几个配置:

innodb_data_home_dir="/usr/mysql/data/"

innodb_log_group_home_dir="/usr/mysql/data/"

innodb_data_file_path=ibdata1:10M:autoextend

innodb_file_per_table=1

参数说明:

这个设置配置一个可扩展大小的尺寸为10mb的单独文件,名为ibdata1,没有给出文件的位置,所以默认的是在 mysql的数据目录内

innodb_data_home_dir : 代表为数据库文件所存放的目录

innodb_log_group_home_dir : 为日志存放目录

innodb_file_per_table : 是否使用共享以及独立表空间


修改完毕后重启mysql,再创建innodb表就可以进行分区了。


本文出自 Jensen-吴泽鑫的博客,转载时请注明出处及相应链接:http://www.wuzexin.cn/post-63.html

发表评论

电子邮件地址不会被公开。必填项已用*标注


Ɣ回顶部