多くの User 値 (電話番号、設定、連絡先情報など) をテーブルに格納している、このタイプの User テーブル構造を考えると、次のようになります。
Table: User ID | Key | Value
$values = [
1 => 'A value for key 1',
2 => 'Hello',
8 => 'Meow',
]
// Update values
$stmt = $pdo_db->prepare('
INSERT INTO table (UID, KEY, VALUE)
VALUES (:UID, :KEY, :VALUE)
ON DUPLICATE KEY UPDATE VALUE = :VALUE');
foreach ($values as $key => $value) {
$stmt->bindParam(':KEY', $key);
$stmt->bindParam(':VALUE', $value);
$stmt->execute();
}
150 の異なるペアがある場合、更新ごとに 150 のクエリになります。このコードを最適化するにはどうすればよいですか? 巨大な SQL を作成すると、mysql 側の作業が楽になりますか? 構造自体の変更を検討する必要がありますか?