mysql数据库性能优化实践(分区)

 最近由于工作需要,需要对数据库的性能进行测试,在这里同步下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 效果不好,于是采取单个表查询,获得结果后再查另一个表,可以做到秒回效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值