找回密码
 立即注册

QQ登录

只需一步,快速开始

Discuz!X2.5/X3/X3.1/X3.2/X3.3/X3.4InnoDB数据库补丁beta1.0.8[20180101更新]

领券优惠购买阿里云
mysql InnoDB 引擎相比我们论坛默认的 MyISAM 引擎在写性能上有很大提升。InnoDB 支持行锁(更准确的说是索引锁)而 MyISAM 只能是表锁。使得 InnoDB 在高并发环境中有更好的表现。

在 Discuz! X2 或者更早的版本,有站长手动把数据库引擎转为 InnoDB , 来避免论坛发帖高峰时期带来的卡顿,
但是 Discuz! X2.5 以及 Discuz! X3版本,由于 post 表使用了联合自增主键,而 InnoDB 不支持这个特性,而无法手动把数据库引擎改为 InnoDB 。


考虑到大型站点站长们的这个需求后,我们发布了在大型论坛测试过的第一个Discuz! X2.5 / X3  InnoDB 补丁测试版。

基本原理:
1,去掉 post 表 position 字段的自增属性。
2,利用内存缓存来记录每个帖子的当前最大楼层数,并在发帖请求过来时依次分发并自增楼层号。
3,由于内存缓存速度极快当多个发帖请求过来后能快速自增并分配楼层号,每条插入语句都能快速领取到唯一楼层号。
4,内建了错误修复机制避免内存失效或者统计错误时自动修复。
5,取消了 count(*) 语句,改为读取模糊值。

适应场景:
发帖比较频繁,适应于会员热衷于交流场景,日发帖一般在数万贴每日的。

服务器要求:
1,独立服务器,或能执行命令行(命令行避免超时)
2,启用了内存缓存(建议为 memcache )
3,post表没有进行分表操作(测试版本暂不支持 post 表已经分表)

操作步骤:
1,关闭论坛,避免有发帖操作。对数据库全库进行备份。
2,下载对应版本扩展框架(下面)
2,关闭论坛,避免有发帖操作。对数据库全库进行备份。
3,确认论坛有开启内存缓存的某一个。
4,在命令行下切换到extend/bin目录下执行 bin_innodb_upgrade.php,一般命令如下:
切换到该目录下执行
  1. ~$php bin_innodb_upgrade.php
复制代码
或者:

  1. nohup /usr/local/php-5.3.28/bin/php bin_innodb_upgrade.php  > innodblog 2> innodberror &
复制代码

/usr/local/php-5.3.28/bin/php 为 php安装目录

耐心等待执行完毕,如果显示其中一些任务失败了,则需要到目录下找log文件,对转换失败的表手工进行转 innodb 。
(对于数据库超大需要转换很久的情况,可以采用下面的命令:
  1. nohup php bin_innodb_upgrade.php  > innodblog 2> innodberror &
复制代码


,这样可以关掉客户端而让其在后台执行,执行的即时情况可以到innodblog里面查看
6,删除 innodb_grade.php 和 log 文件(如果有的话),去论坛发帖测试无误后,开放论坛。


恢复:
如果测试后不想使用了,可以按照如下两个步骤操作:
1,所有表换回MyISAM,恢复 post 表 position 的自增属性。
2,把 class_core 文件覆盖成之前的备份文件。

问题
我们建议大家先在测试论坛上使用无误后再部署到正式论坛。
如果有新版或者补丁出现,会持续在本帖更新,建议大家关注此贴。

已知注意事项:
1, MySQL 5.6版本的 index_condition_pushdown 参数请关闭。
2, 因为全表统计 count(*) 改为了读取模糊值,所以有少部分的统计数据最大会有10%左右的偏差。
3, 没有一定技术能力,平时服务器运行良好的网站,应继续使用默认的 MyISAM 版本,Innodb 在使用和维护上都有更高的要求。
4,在执行脚本的时候一定要保证内存足够,否则很容易造成各种不成功的问题。

X2.5
upload_x25.zip (6.06 KB, 下载次数: 0)

本教程由无限星辰工作室CRX349独家整理和提供,转载请注明地址,谢谢。本文地址:https://www.xmspace.net/thread-63-1-1.html
无限星辰工作室 Discuz全集下载  星辰站长网  集热爱361  一品文学  手机小游戏合集   海外空间网 阿里云服务器 腾讯云服务器
服务Discuz!建站|DiscuzQ配置|二开|小程序|APP|搬家|挂马清理|防护|Win/Linux环境搭建|优化|运维|
服务理念:专业 诚信 友好QQ842062626 服务项目 Q群315524225
发表于 2013-6-26 23:43:17 | 显示全部楼层 |阅读模式

回复 | 使用道具 举报

该帖共收到 1 条回复!
游客,如果您要查看本帖隐藏内容请回复


无限星辰工作室 Discuz全集下载  星辰站长网  集热爱361  一品文学  手机小游戏合集   海外空间网 阿里云服务器 腾讯云服务器
服务Discuz!建站|DiscuzQ配置|二开|小程序|APP|搬家|挂马清理|防护|Win/Linux环境搭建|优化|运维|
服务理念:专业 诚信 友好QQ842062626 服务项目 Q群315524225
发表于 2015-9-6 14:51:19 | 显示全部楼层

回复 | 支持 | 反对 使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

美图秀

    • 解决在IIS7.5下下Discuz X3.4中文用户名空
    • VsCode下Python 报python from import 错误
    • modoer 3.6搬家并更换域名
    • 阿里云Centos8 Error: Failed to synchroni
    • Win2019下VirtualBox虚拟环境开机自动运行
拖动客服框
Online Service
点击这里给我发消息
点击这里联系我们
微信扫一扫
在线客服
快速回复 返回顶部 返回列表