0

パフォーマンスをテストしたいMySQLデータベースがあります。自動インクリメントされた主キーを使用して、約500万件のレコードをテーブルに挿入したいと思います。SQLでこれをすばやく行う簡単な方法はありますか?.sqlファイルをパイプできることはわかっていますが、本当にやりたいのは、同じ同じデータ(ただし、PKが異なる)を500万回挿入することだけです。

4

2 に答える 2

2

PKの値としてNULLを挿入することも、挿入ステートメントの列リストでNULLを指定しないこともできます。そうすれば、自動インクリメントされます。

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 に答える