Mysql 优化方法记录

企业级Mysql优化意见:

两种日志的分类
RedoLog
redo log是InnoDB引擎特有;              
redo log是物理日志,记录的是“在某个数据页上做了什么修改”;
redo log是循环写的,空间固定会用完.
BinLog
binlog是MySQL的Server层实现,所有引擎都可以使用;
binlog是逻辑日志,记录的是这个语句的原始逻辑;
binlog是可以追加写入的。“追加写”是指binlog文件写到一定大小后会切换到下一个,并不会覆盖以前日志。
日志参数优化
1. redo log用于保证crash-safe能力。innodb_flush_log_at_trx_commit这个参数设置成1的时候,表示每次事务的redo log都直接持久化到磁盘。这个参数我建议你设置成1,这样可以保证MySQL异常重启之后数据不丢失。

2. sync_binlog这个参数设置成1的时候,表示每次事务的binlog都持久化到磁盘。这个参数我也建议你设置成1,这样可以保证MySQL异常重启之后binlog不丢失。

表结构设计优化
1. 小而简单的合适数据类型 尽量不用null
2. 使用相同的数据类型存储相似和相关的值
3. 注意可变长字符串
4. 使用主键
5. ALTER TABLE大部分情况下,都会锁表并重建整张表。
6. 范式和反范式要配合使用
MYsql主从复制出现延迟处理方法
若从库IO处理能力不是很强,主库又很繁忙,此时sync_relay_log(io_thread刷盘参数),
innodb_flush_log_at_trx_commit和sync_binlog(sql_thread刷盘参数)又都配置为1,
虽然数据得到了最大的安全保障,但是造成了从库极大的IO负担,从而造成延时。
处理MYsql延时问题
1. 从库出现问题 都是IO的问题 需要减少从库的压力来决绝延迟问题
2. 大事务延迟、大表DLL延迟、长期未提交事务延迟、有无主键、存储层面上的锁、参数设置来处理
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值