次の件名について疑問に思っています(MysqlのINSERT - InnoDBテーブルについて)。
私は他のシステム 2 の中でも特に行うシステムを持っています
- ニュースレターをユーザーに宣伝する
- 特定のタイプのユーザーへの一括メール
現在、ユーザーは 4k に増加し、おそらく 40k に増加します
大量の電子メールを送信しているときは、WHILE (すべてのユーザーをループ) で各ユーザーIDに対して INSERT を実行しています。
2 つの質問があります。
- これが最善の方法ですか?
- ユーザーが 40K (40.000 ユーザー) に達した場合、mysql-server はこれを維持できますか?
ありがとう、
これは私が使用しているコードです
$query_write_mass = "SELECT id FROM mya_users ORDER by artist_real_address ASC";
$result_write_mass = $db->prepare($query_write_mass);
$result_write_mass->execute();
while ( list($receiver_id) = $result_write_mass->fetch(PDO::FETCH_BOTH) ) {
$stmt = $db->prepare
("INSERT INTO inbox(folder_id, sender_id, sender_type, receiver_id,
receiver_type, title, message_body, time, date, flag, spam)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
$stmt->bindValue(1, 0, PDO::PARAM_INT);
$stmt->bindValue(2, 0, PDO::PARAM_INT);
$stmt->bindValue(3, 'x', PDO::PARAM_STR);
$stmt->bindValue(4, $receiver_id, PDO::PARAM_INT);
$stmt->bindValue(5, $receiver_type, PDO::PARAM_STR);
$stmt->bindValue(6, $_POST['title'], PDO::PARAM_STR);
$stmt->bindValue(7, $_POST['body'], PDO::PARAM_STR);
$stmt->bindValue(8, date("G:i:s"), PDO::PARAM_STR);
$stmt->bindValue(9, date("Y-m-d"), PDO::PARAM_STR);
$stmt->bindValue(10, 'n', PDO::PARAM_STR);
$stmt->bindValue(11, '', PDO::PARAM_STR);
$stmt->execute();
}
これは、社内メール システムの一括メール送信用です。
アップデート
この質問に対する適切な回答は、私の別の投稿 (解決済み) @ で見つけることができます。