SQL将数百万个虚拟记录插入MySQL数据库

时间:2012-05-04 01:02:31

标签: mysql sql

我有一个MySQL数据库,我想测试它的性能。我想在一个带有自动递增主键的表中插入大约500万条记录。有没有一种简单的方法可以使用SQL快速完成此操作?我知道我可以在一个.sql文件中管道,但我真正想做的就是插入相同的相同数据(但使用不同的PK),500万次。

2 个答案:

答案 0 :(得分:2)

您可以插入NULL作为PK的值,或者只是不在insert语句的列列表中指定它。这样它就会自动增加。

for ($i=0; $i<5000000; $i++) {
    "INSERT INTO table (id,name) values (NULL,'somename')"; // obviously in form of $dbh->() something
}

答案 1 :(得分:1)

这可能不是一个好的性能测试,因为相同的行不会为除PK之外的任何内容创建具有常规分布值的指标,因此大多数查询都不会显示预期的性能。

我会考虑使用像Faker这样的测试数据生成工具(存在ruby和perl变种):

http://faker.rubyforge.org/