我正在使用一个称为updated_at缓存失效的时间戳列。此处提供有关此特定技术的更多信息。
查询都具有相同的格式
UPDATE "managers" SET "updated_at" = '2014-07-25 15:00:24.212512' WHERE "managers"."id" = 1
问题是此列上的活动过多,导致写入缓慢。我假设减速是由锁定机制引起的。列上没有索引。
我们一直试图通过将可能导致多次更新的操作批处理来缓解这种情况,这确实有所帮助,但整个系统仍然受到影响。
我们实际上正在考虑将其移至 redis 并使用 INCR。
表“public.managers”
专栏 | 类型 | 修饰符
-------------------------+------------------------ -----+-------------------------------------------- -----------------
身份证 | 整数 | 非空默认 nextval('leads_managers_id_seq'::regclass)
account_id | 整数 |
created_at | 没有时区的时间戳 |
更新时间 | 没有时区的时间戳 |
通知_收件人| 文字 | 默认 ''::character 变化
用户名 | 字符变化(255) |
索引:
“leads_managers_pkey”主键,btree (id)
"index_leads_managers_on_uuid" UNIQUE, btree (uuid)
"index_leads_managers_on_account_id" btree (account_id)