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

首頁 > 數據庫 > MySQL > 正文

MySQL針對Discuz論壇程序的基本優化教程

2024-07-24 12:45:24
字體:
來源:轉載
供稿:網友

過了這么久,discuz論壇的問題還是困擾著很多網友,其實從各論壇里看到的問題總結出來,很關鍵的一點都是因為沒有將數據表引擎轉成InnoDB導致的,discuz在并發稍微高一點的環境下就表現的非常糟糕,產生大量的鎖等待,這時候如果把數據表引擎改成InnoDB的話,我相信會好很多。這次就寫個掃盲貼吧。

1. 啟用innodb引擎,并配置相關參數

#skip-innodb
innodb_additional_mem_pool_size = 16M #一般16M也夠了,可以適當調整下innodb_buffer_pool_size = 6G #如果是專用db的話,一般是內存總量的80%innodb_data_file_path = ibdata1:1024M:autoextendinnodb_file_io_threads = 4innodb_thread_concurrency = 20innodb_flush_log_at_trx_commit = 1innodb_log_buffer_size = 16Minnodb_log_file_size = 256Minnodb_log_files_in_group = 3innodb_max_dirty_pages_pct = 50innodb_lock_wait_timeout = 120innodb_file_per_table

修改表引擎為innodb:

mysql> alter table cdb_access engine = innodb;

其他表類似上面,把表名換一下即可...
將表存儲引擎改成innodb后,不僅可以避免大量的鎖等待,還可以提升查詢的效率,因為innodb會把data和index都放在buffer pool中,效率更高。

2.緩存優化
在 my.cnf 中添加/修改以下選項:

#取消文件系統的外部鎖skip-locking#不進行域名反解析,注意由此帶來的權限/授權問題skip-name-resolve#索引緩存,根據內存大小而定,如果是獨立的db服務器,可以設置高達80%的內存總量key_buffer = 512M#連接排隊列表總數back_log = 200max_allowed_packet = 2M#打開表緩存總數,可以避免頻繁的打開數據表產生的開銷table_cache = 512#每個線程排序所需的緩沖sort_buffer_size = 4M#每個線程讀取索引所需的緩沖read_buffer_size = 4M#MyISAM表發生變化時重新排序所需的緩沖myisam_sort_buffer_size = 64M#緩存可重用的線程數thread_cache = 128#查詢結果緩存query_cache_size = 128M#設置超時時間,能避免長連接set-variable = wait_timeout=60#最大并發線程數,cpu數量*2thread_concurrency = 4#記錄慢查詢,然后對慢查詢一一優化log-slow-queries = slow.loglong_query_time = 1#關閉不需要的表類型,如果你需要,就不要加上這個skip-bdb

以上參數根據各自服務器的配置差異進行調整,僅作為參考.

3.索引優化
上面提到了,已經開啟了慢查詢,那么接下來就要對慢查詢進行逐個優化了.

搜索的查詢SQL大致如下:

SELECT t.* FROM cdb_posts p, cdb_threads t WHEREt.fid IN ('37', '45', '4', '6', '17', '41', '28', '32', '31', '1', '42')AND p.tid=t.tid AND p.author LIKE 'JoansWin'GROUP BY t.tid ORDER BY lastpost DESC LIMIT 0, 80;

用 EXPLAIN 分析的結果如下:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 白河县| 常德市| 略阳县| 阜康市| 荔波县| 巫溪县| 米易县| 馆陶县| 宣武区| 湖口县| 陆河县| 阿瓦提县| 商都县| 富民县| 商河县| 南华县| 会泽县| 翁源县| 无极县| 四川省| 合阳县| 壶关县| 平果县| 四平市| 金平| 郸城县| 融水| 安吉县| 宜春市| 绥宁县| 海阳市| 梅河口市| 平潭县| 龙口市| 翁牛特旗| 柏乡县| 东宁县| 修武县| 开原市| 平昌县| 中牟县|