PostgreSQLでのテストのためのランダムデータの挿入方法


場合によっては、私たちは10行しかない場合のパフォーマンスを探索することはできませんので、我々はいくつかのテストデータを作成する必要がありますので、パフォーマンスを再生する前に、私たちはあなたのデータベースとクエリのパフォーマンスをテストするために数百または数百万の行を持っている必要があります.
しかし、私たちはちょうどシェルスクリプトまたは(あなたの大好きな言語)スクリプトを使用することができません、はい、あなたのスクリプトで1 mの行を生成して、データベースに保存しようとすることはできません、しかし、あなたのスクリプトメモリはメモリに1 mの行を取ることができません.そうすれば、あなたはストリームを作成しなければならないか、データの塊を生成しなければなりません.しかし、なぜPostgreSQLから驚くべき機能を持っているのですか?

repeat ()関数


文字列を繰り返す2つのパラメータrepeat(string to repeat, number of times to repeat)を取る関数.
例:
INSERT INTO test (stringColumn) VALUES (repeat("Wow ", 3));
これは、Wow Wow Wowの値を持つStringColumnで行を挿入します

generatfierseries ()関数


2つの必要なパラメータおよびオプションの1つのgenerate_series(start, stop, increment by [default is 1])が行の各々の一連のナンバーを生成するために取る機能.
例:
INSERT INTO test (id) VALUES (generate_series(1, 1000));
これは、1つずつインクリメントされた前のIDに等しいIDで1000行を挿入します.

random ()関数


0から1までのランダム浮動小数点数を生成する関数.
例:
INSERT INTO test (id) VALUES (trunc(random()*100));
これは0から100までの3桁のIDを生成します.

一同


選手表を作成しましょう
CREATE TABLE players (id INT, about TEXT, age INT);
次に、いくつかのランダムなデータで1000行を挿入します.
INSERT INTO players (id, about, age) VALUES (generate_series(1, 1000),  repeat('A cool player. ', 2) || 'My number is ' || trunc(random()*1000), trunc(random()*10 * 2 + 10));
閉じるこの動画はお気に入りから削除されています