[分享]MySql的Query和Insert性能测试_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2288 | 回复: 0   主题: [分享]MySql的Query和Insert性能测试        下一篇 
shylone
注册用户
等级:下士
经验:199
发帖:90
精华:0
注册:2011-11-24
状态:离线
发送短消息息给shylone 加好友    发送短消息息给shylone 发消息
发表于: IP:您无权察看 2014-12-4 9:16:18 | [全部帖] [楼主帖] 楼主

通过对典型的query和insert操作的测试,暂时能得出如下结论(可能会受mysql版本,机器配置的影响):

关于query:

1.     100w是个无索引查询性能的分水岭。

2.     数据量在30w – 200w的区间,在索引高效的情况下,数据库数据量的变化,基本对查询不会产生明显的影响(这也跟查询原理相符)

3.     高效的索引,对查询速度的提高可能是数倍,甚至数十倍的!(这个也在很多案例中得到了证实)

关于insert:

4.     无索引插入在200w附近会出现一个插入速度的分水岭,200w之后的插入耗时基本上会增加2-3倍!

5.     有索引插入,数据量从50w – 300w,插入速度基本上比较平稳,没有明显的跃变。

6.     有索引插入与无索引插入相比,数据量在200w以内的时候,基本上有索引插入耗时 = 无索引插入耗时*1.5,在200w以后,有索引插入速度还比无索引插入的快(这点我也想不明白)

详细测试报告如下:

测试环境:

内存(M):           

total       used       free     shared    buffers     cached
Mem:          2020       1970         49          0         31       1309


Mysql版本:

server version: 4.1.15


数据库处于空闲状态

数据库:db_test_0525

表:t_test1

表结构:

user_num  | varchar(100) |      |     |
name      | varchar(200) | YES  |     | NULL
remark    | text         | YES  |     | NULL
stat_date


Stat_date:随机生成的时间值

User_name: 平均长度为11位的varchar

Name: 长度为134的varchar

Remark :长度为8的varchar

测试sql语句:

1.    select * from t_test1 where user_num='139561885564' and stat_date >= date_format('2007-05-06','%Y-%m-%d');

2.    select * from t_test1 where user_num='139561885564'

索引:alter table t_test1 add index idx_num_date(user_num,stat_date)

alter table t_test1 drop index idx_num_date


一.测试查询性能:

试验结果:(详细数据见附件)

试验数据:

数据量

30
50
100
150
200


查询耗时

  0.53

0.87

1.75

7.31

9.79

趋势图曲线不难分析,100w左右是个查询性能的分水岭。

一.测试插入性能:

数据基数:50w

插入数据量:250w

插入方式:每次插入1000条记录,每插入1w条记录一次日志

采样规则:每插入1w记录一次当前数据量和插入这1w记录耗时(耗时单位:毫秒)

由于采样数据较多,详细数据见附件

1.无索引插入:

共采样了三组数据。第一组可能由于当时数据库繁忙,在插入到180w附近造成一定瑕疵

2.有索引插入:

新建索引:alter table t_test1 add index idx_num_date(user_num,stat_date)

通过对比,不难总结2点:

1.       无索引插入在200w附近会出现一个插入速度的分水岭,200w之后的插入耗时基本上会增加2-3倍!

2.       有索引插入,数据量从50w – 300w,插入速度基本上比较平稳,没有明显的跃变。

3.       有索引插入与无索引插入相比,数据量在200w以内的时候,基本上 有索引插入耗时 = 无索引插入耗时*1.5,在200w以后,有索引插入速度还比无索          引插入的快(这点我也想不明白)




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论