ローカルの DBにダミーデータを大量に入れる
n 番煎じですが.
このスクラップは,以下の記事を書く上で検証が必要だったため雑に書いたものをメモするものです.
僕が PHP が好きなので PHP を使う.
メモリを抑えながら大量にデータを生成するなら Generator を使いたい.
まずは Generetor を使ってランダムな Slack URL を作る
code:php
function createDummyUrl(): Generator
{
$now = strtotime('2020/01/01 00:00:00');
$until = strtotime('2023/01/01 00:00:00');
// 5 万件作る
for ($i = 0; $i < 50000; $i ++) {
$randomChannelId = 'C' . strtoupper(substr(md5(rand()), 1, 10));
$randomTs = mt_rand($now, $until) . '000000';
yield $url;
}
}
ここは別に Slack URL でなくてもよくて,今回は 1 カラムだけ作ればよかったけど,複数カラム必要なら yield する値を連想配列にしたりして適宜カスタム.
PDO を使ってデータを打ち込む
code:php
$pdo = new PDO(
'mysql:dbname=testing;host=127.0.0.1',
'user',
'password',
);
// dummy URL をインサート
foreach (createDummyUrl() as $url) {
echo $url . "\n";
$query = 'insert into slack_urls (full_url) values (?);';
$stmt = $pdo->prepare($query);
}
// 接続を切る
$pdo = null