• Home
  • Archives
  • 随笔
所有文章 友链 关于我

  • Home
  • Archives
  • 随笔

mysql从开始翻书到放弃の一

发布于: 2021-04-20
更新于: 2023-07-09

MySQL

MySQL 入门

MySQL学习

MySQL 的特点知识

MySQL特点

MySQL 架构

MySQL架构

MySQL 优化

系统层优化

  • 关闭大页(huge page)
    • 防止 OOM 和 SWAP 的情况
  • 关闭 SWAP(建议)
    • 强制使用内存,当内存不足时抛出 OOM,而不是继续使用 MySQL,造成瓶颈,当然这块得看如何抉择,一是监控内存情况保证高可用,二是允许 SWAP,防止宕机
  • 脏页比例
    • 当到一定比例时,操作系统会优先做脏页的处理,其他线程会挂起
sysctl -a | grep -i dirty

sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.br-f176b775a278.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.docker0.stable_secret"
sysctl: reading key "net.ipv6.conf.eth0.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
vm.dirty_background_bytes = 0
# (此项可设为5,保证脏页比例小)
vm.dirty_background_ratio = 10
vm.dirty_bytes = 0
vm.dirty_expire_centisecs = 3000
vm.dirty_ratio = 30
vm.dirty_writeback_centisecs = 500

MySQL 关键选项

  • 配置项
    • binlog_format=row 以行记录
    • sync_binlog=1 提交事务前,开启 binlog 到磁盘的同步,最安全但对性能有影响,毕竟已有 binlog 就开始写磁盘
    • long_query_time=0.01~0.1
    • interactive_timeout/wait_timeout=600 长时间不用的连接断开,如有需要,client 自己尝试重连

      可以通过select * from user_summary \G;查询连接的人占用 buffer 情况,选择性 kill 掉

    • sql_safe_updates=1 保证删除/更新条件必须有 where 索引 or limit clause
    • innodb_buffer_pool_size

相关组成

查询缓存

在 Mysql5.7 及以前,每次查询时服务器先查询缓存,如果命中了则返回,如果未命中则尝试解析执行,并将最终结果刷入缓存中

判断是否命中

缓存是存放在一个引用列表中,通过哈希值引用,包含但不限于查询语句、数据库相关影响查询结果的参数

失效缓存实现

如果某张表发生写入,则直接将该表的所有缓存都失效

Mysql8 去掉查询缓存的原因

  • 性能考虑
    • 关闭后性能直升
    • 此外这项不能与高吞吐量工作负载情况下进行负载
  • 此外根据压测结果测试,缓存越靠近客户端,效果越明显
    • 在 Client+2x ProxySQL 压测结果中显示,将缓存移动到客户端时,性能提高了 5.2 倍

参考资料

  • https://blog.csdn.net/weixin_42527464/article/details/113295342
  • https://segmentfault.com/q/1010000020193281
mysql从开始翻书到放弃の一
/archives/324c5ba4/
作者
tyrantqiao
发布于
2021-04-20
更新于
2023-07-09
许可协议
CC BY-NC-SA 4.0
赏

蟹蟹大佬的打赏,大家一起进步

支付宝
微信
  • mysql

扫一扫,分享到微信

微信分享二维码
MySQL性能压力测试从0开始到宕机
mysql优化参考手册--真
© 2024 tyrantqiao 本站总访问量次 本站访客数人次 载入天数...载入时分秒...
  • 所有文章
  • 友链
  • 关于我

tag:

  • 复盘
  • 我
  • 规划
  • java
  • 面试
  • 源码
  • 架构
  • Hadoop
  • HTTP
  • TCP
  • 学习笔记
  • IDEA
  • maven
  • idea
  • Java
  • jdk
  • 面经
  • linux
  • 爱情
  • mysql
  • 性能
  • sql
  • Mysql
  • JAVA
  • 技术
  • Redis
  • MQ
  • Spring
  • 数据库
  • TIDB
  • spring
  • unity
  • chatgpt
  • 经验分享
  • 前端
  • redis
  • vue
  • git
  • shadowsocks
  • hexo
  • blog
  • bug
  • 开发
  • 业务
  • jvm
  • 算法
  • MySQL
  • nginx
  • Linux
  • mq
  • db
  • springCloud
  • ssh
  • python
  • 爬虫
  • test
  • vim
  • 影视剧
  • 中间件
  • 事务
  • 性格
  • 音乐
  • 程序员
  • 随笔
  • mybatis
  • 演讲
  • 域名
  • 猫咪
  • 她
  • github
  • 计划
  • 旅游
  • 软件
  • 心理
  • 情商
  • 幽默
  • 才艺
  • 穿搭
  • 编程
  • 排序
  • 查找
  • 缓存
  • 网络
  • 设计模式
  • c
  • 课程设计
  • centos
  • 数学
  • 本网站主题yilia设计者的主页
如果有问题或者想讨论的可以联系[email protected]或者[email protected]