登录
首页 >  数据库 >  MySQL

TiDB 插入性能测试和优化

来源:SegmentFault

时间:2023-02-22 07:56:14 277浏览 收藏

对于一个数据库开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《TiDB 插入性能测试和优化》,主要介绍了MySQL、数据库、tidb,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

环境

一共 4 个 TiKV 实例,CPU 数量每个实例 30-40 核不等。

需要特别说明的是 TiKV 都是机械硬盘,不是 SSD!

image

插入数据

插入数据量 80000 条左右,只有两个字段。

单线程批量插入

image

可以看到单线程批量 insert 效率非常低,OPS 只有 100 左右,80000 条记录插入花了差不多 13 分钟。

image

这个过程中 TiKV 实例的 I/O 比较紧张。按照 TiDB 的文档,IO Util “一般到 80% - 90% 就需要考虑加节点”。

虽说 TiDB 是专门针对 SSD 开发的,但机械硬盘真的就这么不堪吗?俺不甘心,所以试了下多线程批量插入。

多线程批量插入

分别尝试了 3 线程、10 线程、50 线程的批量插入,结果喜人:

image

如上图所示,50 线程的情况下 OPS 直接上升到 2K,80000 条记录的插入时间缩短到了不到一分钟。

与此同时 IO Util 的使用量:

image

虽然 IO Util 的值在 80% 左右可以说是到了瓶颈,但线程的增加貌似并没有带来更大的压力提升。资源消耗的增加体现在了 CPU 上:

image

可见增加 TiKV 集群中的核数和并发量,可以显著的提升 TiDB 插入效率。

今天关于《TiDB 插入性能测试和优化》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于mysql的内容请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表