操作
描述
职员

韶光
V1.0
新增
文档编写
郭佳明
2021/12/15
V2.0
新增
文档优化
陈壹
2021/12/20
V2.5
完善
文档完善
刘志虎
2021/12/27
技能方案1. 关闭AHI通过对数据库存储引擎信息的查询,创造Innodb等待次数非常高
注:第一列是引擎名称 第二类是索类型加代码文件行数 第三个是等待次数
通过翻看mysql 源码(5.7.33):\storage\innobase\btr\btr0sea.cc,创造是跟自适应哈希索引(Adaptive Hash Index,AHI)干系的函数
随后翻阅官方文档,官方文档提到这在高负载事情的情形下,可能是一个争用点。
结合上金所这边的实际情形,须要将AHI进行关闭。
2. 读写分离从目前的数据量上,SQL本身已经很难进行优化,通过对慢Sql日志剖析,创造慢Sql中针对历史数据的查询都是Range级别
索引情形如下:字段如下:注:个中ns字段是微秒韶光,可以忽略。综合来说:表已经物尽其用,其本身很难有改进的空间,因此须要进行数据库读写分离,提高数据库性能。读写分离流程履行步骤1. 关闭AHI步骤7.211.2.12,7.211.2.13登录数据库:Mysql -uroot -pp@ssw0rd
实行以下Sql命令:
set global innodb_adaptive_hash_index=off
2. 读写分离步骤上岸7.211.2.14,7.211.2.15
用户:sysmon
进入db.php所在目录,这里有两个目录分别存放了db.php文件所有都要变动:cd /cmp/nginx/html/lwjk_v3/configmv db.php db.php.bf //备份cd /cmp/nginx/html/lwjk_v3/localmv db.php db.php.bf. //备份
更换db.php文件更新内容,添加了读写分离的配置
cd /cmp/nginx/html/lwjk_v3/configrz db.php //上传新db.php文件ll //查看权限,如果权限和老的db.php文件不相同需变动权限与授权组和授权主cd /cmp/nginx/html/lwjk_v3/localrz db.php //上传新db.php文件ll //查看权限,如果权限和老的db.php文件不相同需变动权限与授权组和授权主
注:上述的配置指定了主从的干系设置。 从库将被用来实行读操作,而主库将被用来实行写操作,这样读写分离将通过上述配置自动地完成。
3 版本回退7.211.2.12,7.211.2.13登录数据库: mysql -uroot -pp@ssw0rd
实行以下sql命令,开启AHI:
set global innodb_adaptive_hash_index=no
上岸web主机,规复db.php文件
用户:sysmon
ip:7.211.2.14,7.211.2.15
规复config和local目录下的db.php文件:cd /cmp/nginx/html/lwjk_3/configrm -f db.php //删除变动的db.php文件mv db.php.bf db.php //恢复原有db.php文件cd /cmp/nginx/html/lwjk_v3/localrm -f db.php //删除变动的db.php文件mv db.php.bf db.php //恢复原有db.php文件
由于客户哪边数据量大的表紧张是监控系统,监控平台是客户购买的第三方监控系统,监控做事商说可以通过配置实现,但这个办法在非不得已的情形下不建议利用,推举利用通过中间件的办法,对业务层透明,业务实现不考虑底层的数据存储。
喜好的朋友记得给个关注~