mysql分区技术测试

mysql是否支持partition呢,在mysql下执行show plugins;(显示插件)
其中包含了partition字段就说明你的数据库支持分区技术
1,创建带有分区的表
这里写图片描述
表明创建了带有hash分区技术的表,t2表有5个分区
这里写图片描述
mysql支持的几种分区技术,最常用的是range和list二种,Hash主要用来测试

看到test中有12张t2表,每个分区表都有表索引,检索数据更快。
这里写图片描述
把t2表创建索引
create index in_id on t2(id);

2、现在我们插入一个一千万行的数据来测试
使用insert into t2 select * from t2;命令循环多次,即可得到一个千万条记录的数据
这里写图片描述
3、我们创建一个存储过程,来向一个表中插入8000000行数据
这里写图片描述

然后我们测试了分区表和未分区表在插入1000万行数据时,所用的时间
结果测试 分区表插入1000万行数据所用的时间如下:
这里写图片描述
未分区表插入1000万行数据所用的时间如下:
这里写图片描述
结果显示,未分区表插入数据要快很多
4、测试查询速度
这里写图片描述
分区表查询影响的行数如下:
这里写图片描述
未分区表查询影响的行数是全部800万行
这里写图片描述

可以看出分区表比不分区表查询速度要快很多
5、测试二者都加上索引后的查询速度
这里写图片描述
都创建索引后查询时间接近
这里写图片描述

6、分析一下mySQL二种常见的表存储引擎myisam和innodb
myisam表一般都有3个文件组成:表结构,表数据,表索引
innodb表一般有2个文件组成:表结构,表数据和索引
还有一点,就是innodb表有二种存储结构:共享表空间和独占表空间
所谓的共享表空间是指数据库的所有表数据,索引文件全部放在一个文件中(ibdata1),初始化为10M
独占表空间:每一个表都会将以独立的文件方式进行存储,每个表有2个文件:表结构和ibd文件(数据和索引),我们要实现表分区,必须设置成独立表空间
设置方法是:修改mysql配置文件vim /etc/my.cnf 添加 innodb_file_per_table=1

创建2个不同引擎的表
这里写图片描述
查看表的文件结构
这里写图片描述
innodb表结构(独占表空间)创建表分区
这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值