我正在使用第三方 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 ie:currency,defaultCurrencyId,user19,currency1,currency1,currency1,currency1,currency1
所以我需要检查一下,我没有在 cacheKeys 字段中添加重复的键。我需要使用 SQL 来做到这一点(使用 php,即正则表达式等会非常昂贵)。