mysql---分区

环境:

centOS6.4 32位

mysql5.1


分区实验

myisam

一、查看当前mysql是否支持分区

mysql>show plugins;

+------------+--------+----------------+---------+---------+
| Name       | Status | Type           | Library | License |
+------------+--------+----------------+---------+---------+
| binlog     | ACTIVE | STORAGE ENGINE | NULL    | GPL     |
| partition  | ACTIVE | STORAGE ENGINE | NULL    | GPL     |      #有这一行且staus = ACTIVE ,表示支持分区
| CSV        | ACTIVE | STORAGE ENGINE | NULL    | GPL     |
| MEMORY     | ACTIVE | STORAGE ENGINE | NULL    | GPL     |
| InnoDB     | ACTIVE | STORAGE ENGINE | NULL    | GPL     |
| MyISAM     | ACTIVE | STORAGE ENGINE | NULL    | GPL     |
| MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL    | GPL     |
+------------+--------+----------------+---------+---------+

二、普通表与分区表的区别

mysql>create table a1(id int)engine=myisam charset=utf8 partition by hash(id)partitions 5;

#cd /var/lib/mysql/test/

#ll

分区表

-rw-rw----. 1 mysql mysql 8556 Sep  5 22:20 a1.frm
-rw-rw----. 1 mysql mysql   40 Sep  5 22:20 a1.par                #表示该表做了分区处理
-rw-rw----. 1 mysql mysql    0 Sep  5 22:20 a1#P#p0.MYD
-rw-rw----. 1 mysql mysql 1024 Sep  5 22:20 a1#P#p0.MYI
-rw-rw----. 1 mysql mysql    0 Sep  5 22:20 a1#P#p1.MYD
-rw-rw----. 1 mysql mysql 1024 Sep  5 22:20 a1#P#p1.MYI
-rw-rw----. 1 mysql mysql    0 Sep  5 22:20 a1#P#p2.MYD
-rw-rw----. 1 mysql mysql 1024 Sep  5 22:20 a1#P#p2.MYI
-rw-rw----. 1 mysql mysql    0 Sep  5 22:20 a1#P#p3.MYD
-rw-rw----. 1 mysql mysql 1024 Sep  5 22:20 a1#P#p3.MYI
-rw-rw----. 1 mysql mysql    0 Sep  5 22:20 a1#P#p4.MYD
-rw-rw----. 1 mysql mysql 1024 Sep  5 22:20 a1#P#p4.MYI

普通表

-rw-rw----. 1 mysql mysql 8556 Jun 22 08:25 a.frm
-rw-rw----. 1 mysql mysql   14 Jun 22 08:29 a.MYD
-rw-rw----. 1 mysql mysql 1024 Jun 22 08:29 a.MYI
-rw-rw----. 1 mysql mysql   65 Jun 22 08:25 db.opt


innodb表做分区

默认innodb表是共享表文件的

myisam 一张表有3个文件:

-rw-rw----. 1 mysql mysql      8608 Sep  6 00:31 no_part_tab.frm
-rw-rw----. 1 mysql mysql 223999972 Sep  6 01:35 no_part_tab.MYD
-rw-rw----. 1 mysql mysql      1024 Sep  6 01:35 no_part_tab.MYI

innodb 一张表只有1个文件

-rw-rw----. 1 mysql mysql      8556 Sep  6 02:03 a1.frm

需要先设置innodb 为独立表结构

# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = C:\mysql\data/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = C:\mysql\data/
innodb_log_arch_dir = C:\mysql\data/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_file_per_table =OFF                                  #添加这一行,并将值改为1


#/etc/init.d/mysqld restart

innodb表被拆成了2个,这样就可以做分区了,分区方法和myisam 一样。

-rw-rw----. 1 mysql mysql      8556 Sep  6 02:20 a2.frm
-rw-rw----. 1 mysql mysql     98304 Sep  6 02:20 a2.ibd

mysql>create table a3(id int)engine=innodb partition by hash(id) partitions 5;

-rw-rw----. 1 mysql mysql      8556 Sep  6 02:24 a3.frm
-rw-rw----. 1 mysql mysql        40 Sep  6 02:24 a3.par
-rw-rw----. 1 mysql mysql     98304 Sep  6 02:24 a3#P#p0.ibd
-rw-rw----. 1 mysql mysql     98304 Sep  6 02:24 a3#P#p1.ibd
-rw-rw----. 1 mysql mysql     98304 Sep  6 02:24 a3#P#p2.ibd
-rw-rw----. 1 mysql mysql     98304 Sep  6 02:24 a3#P#p3.ibd
-rw-rw----. 1 mysql mysql     98304 Sep  6 02:24 a3#P#p4.ibd


分区表的性能

分区表的性能体现在对硬件的负载上。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值