IT技术博客大学习 共学习 共进步

MySQL优化 之 Discuz论坛优化

MySQL 中文网 2009-10-19 15:43:51 累计浏览 3,741 次
本机暂存

    很早以前写过一个文章,是关于discuz论坛的优化:MySQL优化 之 Discuz论坛优化。写的时候是2006年,没想到过了这么久,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:autoextend
innodb_file_io_threads = 4
innodb_thread_concurrency = 20
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 16M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 50
innodb_lock_wait_timeout = 120
innodb_file_per_table

    2. 修改表引擎为innodb

以下是代码片段:
mysql> alter table cdb_access engine = innodb;

    其他表类似上面,把表名换一下即可...

    将表存储引擎改成innodb后,不仅可以避免大量的锁等待,还可以提升查询的效率,因为innodb会把data和index都放在buffer pool中,效率更高。

建议继续学习

  1. 用Hyer来进行网站的抓取 (累计阅读 158,161)
  2. MySQL数据库在实际应用一些方面的介绍 (累计阅读 36,321)
  3. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,080)
  4. Mysql监控指南 (累计阅读 21,201)
  5. 由浅入深探究mysql索引结构原理、性能分析与优化 (累计阅读 16,180)
  6. 在Apache2.2.XX下安装Mod-myvhost模块 (累计阅读 12,980)
  7. 15个最好的免费开源电子商务平台 (累计阅读 12,460)
  8. 浅谈MySQL索引背后的数据结构及算法 (累计阅读 11,480)
  9. Rolling cURL: PHP并发最佳实践 (累计阅读 11,420)
  10. 整理了一份招PHP高级工程师的面试题 (累计阅读 11,421)