Discuz論壇之大坑!各位壇主請注意!

今天論壇打開了這個會話功能,結果很榮幸踩坑裏了,連接數直接給幹到2000開外。

好了,直接上圖說下:

wKiom1MsY8-x9OKZAAnGTm-533s096.jpg

show processlist,滿屏顯示這條SQL,情急之下,立即pt-kill,先讓論壇活下來。順便想問候下discuz開發,你們真的做了測試了嗎,就直接發佈了?

wKioL1MsZAzxA95XAAr_EJ44cEU098.jpg

表結構:

mysql> desc pre_common_session;
+--------------+----------------------+------+-----+---------+-------+
| Field        | Type                 | Null | Key | Default | Extra |
+--------------+----------------------+------+-----+---------+-------+
| sid          | char(6)              | NO   | PRI |         |       |
| ip1          | tinyint(3) unsigned  | NO   |     | 0       |       |
| ip2          | tinyint(3) unsigned  | NO   |     | 0       |       |
| ip3          | tinyint(3) unsigned  | NO   |     | 0       |       |
| ip4          | tinyint(3) unsigned  | NO   |     | 0       |       |
| uid          | int(11) unsigned     | NO   | MUL | 0       |       |
| username     | char(50)             | NO   |     |         |       |
| groupid      | smallint(6) unsigned | NO   |     | 0       |       |
| invisible    | tinyint(1)           | NO   |     | 0       |       |
| action       | tinyint(1) unsigned  | NO   |     | 0       |       |
| lastactivity | int(10) unsigned     | NO   |     | 0       |       |
| lastolupdate | int(10) unsigned     | NO   |     | 0       |       |
| fid          | int(11) unsigned     | NO   |     | 0       |       |
| tid          | int(11) unsigned     | NO   |     | 0       |       |
+--------------+----------------------+------+-----+---------+-------+
14 rows in set (0.00 sec)


wKiom1MsZpPxqnIfAAKDLW5TAPA952.jpg

由於該SQL導致全表掃描,雖然表數據不多1萬多行,但InnoDB引擎在沒有使用到索引的情況下,會轉爲表級鎖,併發一大,線程處理不完,連接不釋放,連接數就會上升。

wKiom1MsZ0mjVOapAADjB8UDJV8038.jpg

最終讓開發在後臺關閉該功能,解決之。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章