0

我有一个 MySQL 数据库,我想测试它的性能。我想将大约 500 万条记录插入到具有自动递增主键的表中。有没有一种简单的方法可以用 SQL 快速做到这一点?我知道我可以通过管道输入 .sql 文件,但我真正想做的只是插入相同的数据(但 PK 不同),500 万次。

4

2 回答 2

2

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

for ($i=0; $i<5000000; $i++) {
    "INSERT INTO table (id,name) values (NULL,'somename')"; // obviously in form of $dbh->() something
}
于 2012-05-04T01:03:29.880 回答
1

这可能不是一个好的性能测试,因为除了 PK 之外,相同的行不会创建具有规则分布值的索引,因此大多数查询不会展示预期的性能。

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

http://faker.rubyforge.org/

于 2012-05-04T01:43:39.013 回答