国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

千萬級記錄的Discuz論壇導致MySQL CPU 100%的優化筆記

2024-07-24 12:44:35
字體:
來源:轉載
供稿:網友
發現此主機運行了幾個 Discuz 的論壇程序, Discuz論壇的好幾個表也存在著這個問題。于是順手一并解決,cpu占用再次降下來了。
  前幾天,一位朋友通過這篇文章找到了我,說他就是運行最新的 discuz 版本,MySQL 占用 CPU 100%,導致系統假死,每天都要重啟好幾次,花了一個多月的時間一直沒有解決,希望我幫忙一下。經過檢查,他的這個論壇最重要的幾個表中,目前 cdb_members 表,有記錄 6.2 萬;cdb_threads 表,有記錄 11萬;cdb_posts表,有記錄 1740 萬;所有數據表的記錄加起來,超過 2000 萬;數據庫的大小超過 1GB。經過半天的調試,總算完成了 discuz 論壇優化,于是將其解決經過記錄在這篇文章中。

  2007年3月我發現 discuz 論壇的數據庫結構設計有一些疏忽,有許多查詢子句的條件比較,都沒有建立 Index 索引。當時我所檢查的那個數據表,記錄只有幾千條,因此對 CPU 負荷不大。現在這個數據庫表,上千萬的記錄檢索,可以想象,如果數據表結構設計不規范,沒有提供索引,所耗費的時間是一個恐怖的數字。有關 MySQL 建立索引的重要性,可以參見我的這篇文章底部的說明

  為了調試方便,我從 dizcus 的官網下載了其最新的 Dizcus! 5.5.0 論壇程序.

  我首先檢查了 my.ini 的參數配置,一切正常。進入 MySQL 的命令行,調用 show processlist 語句,查找負荷最重的 SQL 語句,結合 Discuz 論壇的源碼,發現有以下語句導致 CPU 上升:

復制代碼 代碼如下:

mysql> show processlist;
+-----+------+----------------+---------+---------+------+------------+---------
-----------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info

+-----+------+----------------+---------+---------+------+------------+---------
-----------------------------------------------------------------+
| 363 | root | localhost:1393 | history | Query | 0 | statistics | SELECT C
OUNT(*) FROM cdb_pms WHERE msgfromid=11212 AND folder='outbox' |
+-----+------+----------------+---------+---------+------+------------+---------

檢查 cdb_pms 表的結構:
復制代碼 代碼如下:

mysql> show columns from cdb_pms;
+-----------+------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------------+------+-----+---------+----------------+
| pmid | int(10) unsigned | NO | PRI | NULL | auto_increment |
| msgfrom | varchar(15) | NO | | | |
| msgfromid | mediumint(8) unsigned | NO | MUL | 0 | |
| msgtoid | mediumint(8) unsigned | NO | MUL | 0 | |
| folder | enum('inbox','outbox') | NO | | inbox | |
| new | tinyint(1) | NO | | 0 | |
| subject | varchar(75) | NO | | | |
| dateline | int(10) unsigned | NO | | 0 | |
| message | text | NO | | | |
| delstatus | tinyint(1) unsigned | NO | | 0 | |
+-----------+------------------------+------+-----+---------+----------------+
10 rows in set (0.00 sec)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄂托克旗| 安陆市| 铁岭县| 游戏| 临安市| 苍溪县| 突泉县| 黑龙江省| 灵武市| 广南县| 瑞昌市| 永昌县| 阿拉善右旗| 丹寨县| 红桥区| 祁阳县| 长白| 陇南市| 龙游县| 安丘市| 开原市| 福海县| 荥经县| 禹城市| 新邵县| 卓尼县| 江阴市| 阿克苏市| 娱乐| 景德镇市| 米脂县| 读书| 徐水县| 五原县| 中超| 宜良县| 临海市| 青川县| 克拉玛依市| 错那县| 大同市|