MySQL 优化学习6 --分库分表?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26437925/article/details/83212571

分库分表 又优点也有缺点,还要根据实际情况而定

此文代码和数据表实践github: https://github.com/doctording/sharding-sql


新增数据操作对比效率

1. java代码Junit 测试一次

  • 普通mybatis操作,往已有一千万数据的user表新增数据
    在这里插入图片描述

  • 分库分表,新增一条记录
    在这里插入图片描述

2. jmeter 测试

开了20个线程

  • 普通mybatis操作
    在这里插入图片描述

在这里插入图片描述

  • 分库分表,新增一条记录
    在这里插入图片描述

在这里插入图片描述


分开测试 ,数字表示jmeter所开的线程数量

普通的

100

在这里插入图片描述

1k

在这里插入图片描述

5k

在这里插入图片描述

1w
在这里插入图片描述


分库分表的

100

在这里插入图片描述

1k

在这里插入图片描述

5k

在这里插入图片描述

1w

在这里插入图片描述


说明:

对于1千万数据的实践, 线程数设为10,1000,5000时,普通一张mysql的效率比分库分表是高的;但是当测试线程为10000时,对于新增操作,普通一张表直接jmeter测试,线程阻塞了一样; 而对于分库分表的,jmeter能够轻松执行完成,注意到分库分表的响应时间也比普通一张表的好

可以想象,对于更大规模的数据量高并发的访问,如果仍然还用一张普通的mysql表来处理,那结果将是非常糟糕的。

主要参考:

https://www.cnblogs.com/jshen/p/7682502.html

https://blog.csdn.net/winy_lm/article/details/50708493

  • 分库分表的采用了sharding-jdbc

https://github.com/sharding-sphere/sharding-sphere

代码来自:http://www.cnblogs.com/2YSP/p/9746981.html
不过原文的代码跑起来有问题,测试数据也没造

猜你喜欢

转载自blog.csdn.net/qq_26437925/article/details/83212571