サードパーティの mysql テーブルを使用しており (つまり、そのプロパティを変更できません)、ID (キー)、名前、および値を持つ行があります。
一意のキャッシュ キーを cacheKeys.. という名前の行に格納したいのですが、これが私の sql ステートメントです。
$query = "INSERT INTO ".$tableName." (name, value) VALUES ('CacheKeys', '".$key."') ON
DUPLICATE KEY UPDATE value = CONCAT_WS (',', $tableName.value, '$key')";
私はすでにキャッシング アルゴリズムを実装しているので、誰かがキャッシュ キーを追加するたびに、(上の CacheKeys 行から) 既に存在するかどうかを確認し、存在する場合はキャッシュからフェッチし、存在しない場合は保存します。
問題は、SQL 書き込み操作に時間がかかるようであり、重複したキャッシュキーを保存することがよくあることです。
そのため、重複するキーを cacheKeys フィールドに追加していないことを確認する必要があります.. SQL を使用してそれを行う必要があります (php を使用すると、正規表現などは非常に高価になります)。