有时我们需要在数据库中构建大量的基础数据(比如千万级别数据)进行查询操作的性能测试或者 sql 优化。我们通常会采用如下两种方式来创建测试数据:
-
方式一:编写代码,通过代码批量插库
-
方式二:编写存储过程和函数执行
但这两种方法都略显麻烦,本文使用 MySQL 自带的压力测试工具 mysqlslap 来实现测试数据的构建。如果想要了解 mysqlslap 更详细的用法,可以参考我之前写的文章(点击查看)
1,准备工作
假设我们要在 people 表里插入 1 百万条随机的测试数据,表结构如下:
2,插入数据
(1)我们执行如下命令实现数据插入,为提高效率这里开启 10 个客户端线程同时插入,总共执行 1 百万次操作:
mysqlslap -uroot -pHangge_123 --concurrency=10 --number-of-queries=1000000 --create-schema=hangge --query="INSERT INTO people(name,age) VALUES (uuid(), RAND() * 100)"
(2)执行完毕可以发现总耗时 208 秒:
(3)查看数据库,可以发现测试数据已经创建成功:
原文出自:www.hangge.com 转载请保留原文链接:https://www.hangge.com/blog/cache/detail_3071.html