`

[原创] 简单测试MySQL 5.1 表分区功能

 
阅读更多


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

【测试环境】

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

【测试过程】

查看MySQL版本:

mysql>selectversion();
+--------------------------------+
|version()|
+--------------------------------+
|
5.1.19-beta-community-nt-debug|
+--------------------------------+
1rowinset(0.00sec)

建立分区表:

mysql>createtablep1(
->idint(
10)notnullauto_increment,
->usernamevarchar(
32)default'',
->emailvarchar(
64)default'',
->createddatetimedefault'
0000-00-0000:00:00',
->primarykey(id)
->)engine
=myisam
->partitionbyrange(id)(
->partitionp1valueslessthan(
10000),
->partitionp2valueslessthan(
20000),
->partitionp3valueslessthan(
30000),
->partitionp4valueslessthan(
40000),
->partitionp5valueslessthan(
50000),
->partitionp6valueslessthan(
60000),
->partitionp7valueslessthan(
70000),
->partitionp8valueslessthan(
80000),
->partitionp9valueslessthan(
90000),
->partitionp10valueslessthanmaxvalue
->)
;
QueryOK,0rowsaffected(0.08sec)

建立不分区(普通表):

mysql>createtablep2(
->idint(
10)notnullauto_increment,
->usernamevarchar(
32)default'',
->emailvarchar(
64)default'',
->createddatetimedefault'
0000-00-0000:00:00',
->primarykey(id)
->)engine
=myisam;
QueryOK,0rowsaffected(0.00sec)

插入数据的存储过程:

mysql>delimiter//
mysql>createprocedureload_tab()
->begin
->declarevintdefault
0;
->whilev<100000
->do
->insertintop1(username
,email,created)values('jack','jack@example.com',now());
->setv=v+1;
->endwhile;
->end
->//
QueryOK
,0rowsaffected(0.00sec)

给两个表分别插入数据:


mysql>delimiter
;
mysql>callload_tab();
QueryOK,1rowaffected(11.09sec)


mysql>insertintop2select*fromp1
;
QueryOK,100001rowsaffected(1.30sec)
Records:
100001Duplicates:0Warnings:0

查询结果比较:

mysql>selectcount(1)fromp1;
+----------+
|count(
1)|
+----------+
|
100001|
+----------+
1rowinset(0.00sec)

mysql>selectcount(
1)fromp2;
+----------+
|count(
1)|
+----------+
|
100001|
+----------+
1rowinset(0.00sec)



mysql>select*fromp1
;
100001rowsinset(0.41sec)

mysql>select*fromp2
;
100001rowsinset(0.42sec)

【总结】

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

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

参考资料:http://dev.mysql.com/doc/refman/5.1/zh/partitioning.html


分享到:
评论

相关推荐

    MYSQL5.1表分区初探[参考].pdf

    MYSQL5.1表分区初探[参考].pdf

    详细介绍Mysql5.1分区技术

    详细介绍mysql5.1 分区技术,通过对list range hash key四种分区技术的举例阐述Mysql分区,18.2.1. RANGE分区 18.2.2. LIST分区 18.2.3. HASH分区 18.2.4. KEY分区 18.2.5. 子分区 18.2.6. MySQL分区处理NULL值的...

    MySQL5.1新功能-分区

    MySQL5.1新功能-分区

    MySQL 5.1参考手册 (中文版)

    5.4. mysql_fix_privilege_tables:升级MySQL系统表 5.5. MySQL服务器关机进程 5.6. 一般安全问题 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻击者面前保持安全 5.6.3. Mysqld安全相关启动选项 5.6.4. LOAD DATA LOCAL...

    MySQL 5.1参考手册中文版

    5.4. mysql_fix_privilege_tables:升级MySQL系统表 5.5. MySQL服务器关机进程 5.6. 一般安全问题 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻击者面前保持安全 5.6.3. Mysqld安全相关启动选项 5.6.4. LOAD DATA ...

    创建mysql表分区的方法

    表分区的测试使用,主要内容来自于其他博客文章以及mysql5.1的参考手册mysql测试版本:mysql5.5.28mysql物理存储文件(有mysql配置的datadir决定存储路径)格式简介数据库engine为MYISAMfrm表结构文件,myd表数据...

    MySQL 5.1官方简体中文参考手册

    5.4. mysql_fix_privilege_tables:升级MySQL系统表 5.5. MySQL服务器关机进程 5.6. 一般安全问题 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻击者面前保持安全 5.6.3. Mysqld安全相关启动选项 5.6.4. LOAD DATA LOCAL...

    MySQL 5.1参考手册

    MySQL 5.1参考手册.chm 前言 1. 一般信息 1.1. 关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL...

    MySQL 5.1中文手冊

    5.4. mysql_fix_privilege_tables:升级MySQL系统表 5.5. MySQL服务器关机进程 5.6. 一般安全问题 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻击者面前保持安全 5.6.3. Mysqld安全相关启动选项 5.6.4. LOAD DATA LOCAL...

    mysql5.1中文手册

    mysql_fix_privilege_tables:升级MySQL系统表 5.5. MySQL服务器关机进程 5.6. 一般安全问题 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻击者面前保持安全 5.6.3. Mysqld安全相关启动选项 5.6.4. ...

    MySQL5.1参考手册官方简体中文版

    MySQL 5.1参考手册 这是MySQL参考手册的翻译版本,关于MySQL参考手册,请访问dev.mysql.com。 原始参考手册为英文版,与英文版参考手册相比,本翻译版可能不是最新的。 This translation was done by MySQL ...

    MySQL_5.1_HTML_chapter.rar_详细手册(html版)

    MySQL_5.1_HTML_chapter.rar_详细手册(html版),内容详细,主要部分:13. SQL语句语法、18. 分区、A. 问题和常见错误

    MySQL-5.1-Manual_zh.rar_12.21_mysql api_mysql manual chm_mysql5.

    MySQL5.1 中文手册 这是MySQL参考手册的翻译版本,关于MySQL参考手册,请访问dev.mysql.com。 原始参考手册为英文版。 -------------------------------------------------------------------------------- ...

    MySQL的表分区详解

    mysql5.1开始支持数据表分区了。如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区。当然也可根据其他的条件分区。二、为什么要对表进行分区为了改善大型表以及具有各种...

    MySQL中表分区技术详细解析

    MySQL 5.1 中新增的分区(Partition)功能就开始增加,优势也越来越明显了: 与单个磁盘或文件系统分区相比,可以存储更多的数据 很容易就能删除不用或者过时的数据 一些查询可以得到极大的优化 涉及到 SUM()/...

    MySQL自动分区扩展

    最近需要把一个oralce数据库向mysql数据库移植。oracle库用到了job和存储过程,因为mysql中没有job,所有要用新功能event代替一下,这个是5.1以后才有的新功能,所以稍微研究了一下。

    Mysql数据表分区技术PARTITION浅析

    Mysql 的分区技术与水平分表有点类似, 但是它是在逻辑层进行的水平分表, 对于应用而言它还是一张表, 换句话说: 分区不是实际真正的对一张表进行拆分,分区之后表还是一个表,它是把存储文件进行拆分。 在 Mysql ...

    MySQL的分区表(PartitionedTable)功能详解

    数据库分区是一种物理数据库设计技术。其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减sql语句的响应时间,同时...MySQL从5.1版本开始支持分区,同个表中的分区表名称要唯一 主要有两种形式:水平分区和垂

Global site tag (gtag.js) - Google Analytics