Discuz! 官方交流社區(qū)
標(biāo)題: forum_thread主題表頻繁鎖表,有什么好辦法么? [打印本頁]
作者: ink 時間: 2022-5-8 11:20
標(biāo)題: forum_thread主題表頻繁鎖表,有什么好辦法么?
forum_thread(myisam)表大概1.6G大小,頻繁的被鎖表,而且mysql的慢查詢幾乎都和這個表有關(guān)系,類似的慢查詢記錄:
# Time: 2022-05-08T01:51:00.188791Z
# User@Host: ****@localhost [127.0.0.1] Id: 880133
# Query_time: 3.783841 Lock_time: 0.094868 Rows_sent: 1 Rows_examined: 1816276
SET timestamp=1651974660;
SELECT t.tid, t.closed, t.author, t.authorid FROM forum_thread tWHERE t.fid IN('176','183','166','147','174','31','56','77','78','80','76','158','160','167','171','178','179','240','241','247','248','249','262','282','156','74','70','71','72','73','69','97','161','86','136','169','173','175','92','94','182','281','159','285','88','89','90','48','25','21')AND t.displayorder>='0' AND (0 OR t.subject LIKE '*****') ORDER BY tidDESC LIMIT 500;
之前嘗試給dateline加了索引,情況有輕微的改善,看上面的記錄應(yīng)該都是和搜索有關(guān)系的,論壇已經(jīng)限制僅僅能搜索主題,但就這樣如果還因為搜索頻繁鎖表的話,總不能禁止了搜索功能……
請高手指點(diǎn)一下,萬分感謝!!!!!!!!!!!!!!
作者: mingkong 時間: 2022-5-8 12:41
看起來不是很像系統(tǒng)自帶的查詢語句,可以請人改進(jìn)這個慢查詢的查詢方法。
作者: 耗子 時間: 2022-5-8 13:15
會不會和插件有關(guān)系, 分表下試試
作者: ink 時間: 2022-5-8 14:41
它這個搜索有具體搜索關(guān)鍵詞的,我只是打了*號,可能不會是插件吧。
作者: ink 時間: 2022-5-8 14:41
應(yīng)該就是這個搜索界面:http://www.9999xn.com/search.php?mod=forum&adv=yes
作者: ink 時間: 2022-5-8 14:43
而且主題表不敢分表啊,后患無窮
以前進(jìn)行過用戶表優(yōu)化,后悔不已,有陰影了……
作者: 科站網(wǎng) 時間: 2022-5-8 16:02
搜索本身就挺費(fèi)的,可以試試換成innodb,限制搜索時間,或者使用插件https://addon.dismall.com/plugins/xunsearch.html
作者: dashen 時間: 2022-5-8 19:42
不像自帶的sql
作者: ink 時間: 2022-5-10 12:20
我曾經(jīng)也懷疑過,所以剛才去后臺設(shè)置內(nèi)把搜索的最大搜索結(jié)果改成了400,過了一會再去看慢日志:
\n# Time: 2022-05-10T04:10:13.815770Z\n# User@Host: *** @ localhost [127.0.0.1] Id: 8774685\n# Query_time: 3.068823 Lock_time: 0.000116 Rows_sent: 43 Rows_examined: 1817067\nSET timestamp=1652155813;\nSELECT t.tid, t.closed, t.author, t.authorid FROM forum_thread t WHERE t.fid IN ('176','183','166','147','174','31','56','77','78','80','76','158','160','167','171','178','179','240','241','247','248','249','262','282','156','74','70','71','72','73','69','97','161','86','136','169','173','175','92','94','182','281','159','285','88','89','90','48','25','21') AND t.displayorder>='0' AND (0 OR t.subject LIKE '%s905x3%') ORDER BY tid DESC LIMIT 400;
還真得就是系統(tǒng)自帶的搜索。
作者: ink 時間: 2022-5-10 17:56
請教一下,主題表目前1.6G,沒有分表,已經(jīng)建立下圖中這些索引,是否合理?萬分感謝!
(, 下載次數(shù): 32)
作者: 天外飄仙 時間: 2022-5-12 08:54
可以試試 我開發(fā)的xunsearch搜索插件: https://addon.dismall.com/plugins/twpx_xunsearch.html
搜索速度和效果 要比 dz自帶的好 不少——而且全文搜索 也不會對 數(shù)據(jù)庫造成壓力
作者: ink 時間: 2022-5-12 10:42
謝謝推薦,這類插件我看過,可惜我的站點(diǎn)暫時還是GBK的,另外可能馬上面臨3.5的升級,暫時還是緩一緩。
作者: jiangchuankyo 時間: 2022-5-12 19:19
用排除法即可:
把你的查詢時間很久的那句復(fù)制到mysqladmin自定義執(zhí)行命令里面去手動查看, 看看要多久,
然后依次該句的條件項, 看是哪一個條件引起的耗時
歡迎光臨 Discuz! 官方交流社區(qū) (http://www.9999xn.com/) |
Powered by Discuz! W1.0 |