Re: [問題] mysql 同一個table select lock
看板Database (資料庫)作者DarkKiller (System hacked)時間6年前 (2018/01/08 13:35)推噓1(1推 0噓 1→)留言2則, 1人參與討論串2/2 (看更多)
※ 引述《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;
--
Resistance is futile.
https://blog.gslin.org/ & <gslin@gslin.org>
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.104.21
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1515389750.A.D15.html
推
01/09 22:24,
6年前
, 1F
01/09 22:24, 1F
→
01/09 22:25,
6年前
, 2F
01/09 22:25, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章