• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

简单测试MySQL 5.1 表分区功能_MySQL

mysql 搞代码 4年前 (2022-01-09) 29次浏览 已收录 0个评论

想测试下表分区功能跟自主的分布式的性能差异,进行了简单的测试,前后花费了半个小时,可能测试数据不太准确。

【测试环境】

操作系统:Windows XP SP2
MySQL: 5.1.19-beta-community-nt-debug

【测试过程】

查看MySQL版本:

mysql> select version();
+——————————–+
| version() |
+——————————–+
| 5.1.19-beta-community-nt-debug |
+——————————–+
1 row in set (0.00 sec)
建立分区表:

mysql> create table p1 (
-> id int(10) not null auto_increment,
-> username varchar(32) default ”,
-> email varchar(64) default ”,
-> created datetime default ‘0000-00-00 00:00:00’,
-> primary key (id)
-> ) engine=myisam
-> partition by range(id)(
-> partition p1 values less than (10000),
-> partition p2 values less than (20000),
-> partition p3 values less than (30000),
-> partition p4 values less than (40000),
-> partition p5 values less than (50000),
-> partition p6 values less than (60000),
-> partition p7 values less than (70000),
-> partition p8 values less than (80000),
-> partition p9 values less than (90000)本文来源gaodaimacom搞#^代%!码&网(,
-> partition p10 values less than maxvalue
-> );
Query OK, 0 rows affected (0.08 sec)

建立不分区(普通表):

mysql> create table p2 (
-> id int(10) not null auto_increment,
-> username varchar(32) default ”,
-> email varchar(64) default ”,
-> created datetime default ‘0000-00-00 00:00:00’,
-> primary key (id)
-> ) engine=myisam;
Query OK, 0 rows affected (0.00 sec)

插入数据的存储过程:

mysql> delimiter //
mysql> create procedure load_tab()
-> begin
-> declare v int default 0;
-> while v < 100000
-> do
-> insert into p1 (username,email,created) values (‘jack’, ‘[email protected]’, now());
-> set v = v + 1;
-> end while;
-> end
-> //
Query OK, 0 rows affected (0.00 sec)
给两个表分别插入数据:


mysql> delimiter ;
mysql> call load_tab();
Query OK, 1 row affected (11.09 sec)

mysql> insert into p2 select * from p1;
Query OK, 100001 rows affected (1.30 sec)
Records: 100001 Duplicates: 0 Warnings: 0
查询结果比较:

mysql> select count(1) from p1;
+———-+
| count(1) |
+———-+
| 100001 |
+———-+
1 row in set (0.00 sec)

mysql> select count(1) from p2;
+———-+
| count(1) |
+———-+
| 100001 |
+———-+
1 row in set (0.00 sec)

mysql> select * from p1;
100001 rows in set (0.41 sec)

mysql> select * from p2;
100001 rows in set (0.42 sec)
【总结】

看来这个简单数据和在Windows平台上面,数据量太小,还无法看出采用分区表的优势,但是表分区比普通表还是要快 一点点,大数据量没有测试,因为没有安装了MySQL 5.1 的服务器,所以就简单的测试下,当然,还应该选择不同的分区方式,比如hash,混合之类的,这里只是简单的范围分区。

这个测试结果不太靠谱,姑且看看,建议需要使用的还是自己测试看看才是正道


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:简单测试MySQL 5.1 表分区功能_MySQL
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址