mysql数据库性能优化与测试
2016-03-21 17:44
465 查看
最近由于工作需要,需要对数据库的性能进行测试,在这里同步下mysql的性能测试结果。
一、业务场景
表中存放的数据为订单信息数据,目前有3百万数据,最初建表时只对查询的字段建索引,当表数据量达到200w时,明显查询速度变慢,select一次需要2s,很明显达不到性能要求。
二、mysql数据库性能测试
数据库机器型号,ucloud标准机型,内存1.5g
单位:微秒
订单数据 订单商品数据 两表left join
1w数据: <10 <10 <10
10w数据 <200 <210 <200
50w数据 <4000 <5000 <6000
100w数据 <8000 <11000 <9000
200w数据 <18000 <23000 <18000
二、如何实施
1、考虑使用分区+分数据库的方式,目前预测单表最多容纳1000w数据;
2、分区个数的选择,测试分100个区跟500个区的效果;分区方式的选择:hash分区
结果如下:通过结果可以发现在1000w数据的情况下,分500个区的查询效果比分100个好
3、对订单数据表跟订单商品数据表分别分500个区,目前只有300w数据
对索引字段查询,以及hash字段,10微秒一下有返回结果;
分区之后,两个表left join 效果不好,于是采取单个表查询,获得结果后再查另一个表,可以做到秒回效果。
一、业务场景
表中存放的数据为订单信息数据,目前有3百万数据,最初建表时只对查询的字段建索引,当表数据量达到200w时,明显查询速度变慢,select一次需要2s,很明显达不到性能要求。
二、mysql数据库性能测试
数据库机器型号,ucloud标准机型,内存1.5g
单位:微秒
订单数据 订单商品数据 两表left join
1w数据: <10 <10 <10
10w数据 <200 <210 <200
50w数据 <4000 <5000 <6000
100w数据 <8000 <11000 <9000
200w数据 <18000 <23000 <18000
二、如何实施
1、考虑使用分区+分数据库的方式,目前预测单表最多容纳1000w数据;
2、分区个数的选择,测试分100个区跟500个区的效果;分区方式的选择:hash分区
结果如下:通过结果可以发现在1000w数据的情况下,分500个区的查询效果比分100个好
3、对订单数据表跟订单商品数据表分别分500个区,目前只有300w数据
对索引字段查询,以及hash字段,10微秒一下有返回结果;
分区之后,两个表left join 效果不好,于是采取单个表查询,获得结果后再查另一个表,可以做到秒回效果。
相关文章推荐
- mysql-cluster详细配置
- MYSQL安装输入密码闪退 win7
- mysql数据库的一些简单的sql语句 内连接 - 表的关联查询
- MySQL版本区别5.5与5.7之DEFAULT CURRENT_TIMESTAMP
- MySQL学习笔记之七:数据的备份和恢复
- Mysql常用命令详解
- Mysql常用命令详解
- MySQL 5.7及以上解压缩版本配置安装
- mysql 外键 常见的的两个错误 mysql createtable errno 121 150 错误
- mysql分区研究
- 更改Mysql root用户密码
- MySQL重装失败,could not start the service MySQL.Error:0
- MySQL重装失败,could not start the service MySQL.Error:0
- 简述MySQL分片中快速数据迁移
- 《Mysql 公司职员学习篇》 第三章 小A的疑问
- 新版MySQL的安装与问题解决方法
- MySQL命令行界面中出现字符错误提示的原因及解决方法
- mysql 分库分表
- mysql取出现在的时间戳和时间时间戳转成人类看得懂的时间
- 【转】MySQL批量SQL插入各种性能优化