对同一张表读写频繁如何避免锁表

Posted qianjinyan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对同一张表读写频繁如何避免锁表相关的知识,希望对你有一定的参考价值。

    1. 如果是update多,建议支持脏读with(nolock)这样,写不会影响读。
    1. 如果都是insert,建议分成两个表,一个历史表,一个当前表,每天把当前表移到历史表。

今天遇到一个发短信接口,验证短信接口,Fulfiument部门的短信转化率也并不是很高,只有5%-6%。
营销短信的发送速度在50万每小时。
之后server扛不住了,DB中出现query查不完情况,锁表前奏啊
营销短信降速到20万每小时

50万/3600 =138.88每秒
20万/3600 =55.55每秒
即使100%转化率也不至于呢

发送短信,会被某表中insert 一条短信验证码code
验证短信,会先查询,是同一张表,select top 1 code from tablename where xxx=xxx and flag = 0 order by timestamp desc
查询到了进行验证通过,同时update flag =1

哎没有想到呢,最近干啥呢








以上是关于对同一张表读写频繁如何避免锁表的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 表锁住,杀掉锁表进程

MySQL锁--01---读锁写锁表锁及案例

MySQL-----锁(行锁表锁页锁乐观锁悲观锁)

MySQL 行锁表锁

数据库DB2锁表问题

oracle 表锁住了啥原因