Re: [问题] mysql 同一个table select lock

楼主: DarkKiller (System hacked)   2018-01-08 13:35:45
※ 引述《liisi (小心一点)》之铭言:
: 想请问一下版友
: 如果网站同时有1千人在读取同一个table 是否会造成lock
: 我今天遇到这种情况 很多买家涌进商品页面 打算抢单
: 因为抢单关系 很多人会狂按F5重整 (db就会一直去读商品的table)
: 直到抢单按钮一出现 马上下订单
: 结果时间一到 公司的网站当掉快20分钟
: MIS是说主机没有问题 主要是db sql卡住
: 我查了一下 processlist
: 全都卡在 select 商品的table 或是和商品相关join到的table
: 我是把时间长的几个process kill掉 才慢慢恢复正常
: 之前偶尔卡了几秒 还不算严重
: 但是今天却卡了20分钟 整个被lock住 无法释出
: 必须透过kill process才能恢复正常 囧rz..
: 但是像这种 select lock 要如何解决?
: 我看了一下内文 是有提到 WITH NOLOCK 但是好像是mssql才行
: 想请问mysql有方法可以预防这问题吗?
你问问看土地公比较有机会...
平常把 PMM 装起来记录 MySQL 的各种状况:
https://www.percona.com/software/database-tools/percona-monitoring-and-management
接上 Grafana 之类的系统,至少在有问题的时候可以看资料去猜:
https://www.percona.com/blog/2016/10/25/monitoring-os-metrics-amazon-rds-grafana/
然后 lock 的时候看一下 InnoDB 里面的情况,通常会很长,需要慢慢读:
SHOW ENGINE INNODB STATUS;
SHOW ENGINE INNODB MUTEX;
作者: liisi (小心一点)   2018-01-09 22:24:00
哈哈 连DK大都这样说了 看来是无法预防了只是我上头不是RD出身 我很难跟他说明要怎解决问题 囧rz..

Links booklink

Contact Us: admin [ a t ] ucptt.com