• Home
  • 归档
文章检索 作品与友邻 关于我
暴君乔博客
Home 归档

mysql从开始翻书到放弃の一

发布于: 2021-04-20
更新于: 2023-07-09
文章目录
  1. MySQL
    1. MySQL 入门
    2. MySQL 的特点知识
    3. MySQL 架构
    4. MySQL 优化
    5. 相关组成
    6. 参考资料

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优化参考手册--真
© 2026 tyrantqiao 本站总访问量次 本站访客数人次 载入天数...载入时分秒...
  • 文章检索
  • 作品与友邻
  • 关于我

展开标签

  • 随笔
  • 旅行
  • Java
  • 面经
  • 源码
  • 计算机网络
  • 技术
  • 架构
  • Hadoop
  • IDEA
  • maven
  • JDK
  • Linux
  • MySQL
  • 性能
  • 数据库
  • Redis
  • MQ
  • Spring
  • SquirrelFin
  • 记账
  • Android
  • 个人财务
  • unity
  • TIDB
  • chatgpt
  • 前端
  • Vue
  • Git
  • Hexo
  • shadowsocks
  • 问题排查
  • 业务
  • JVM
  • 算法
  • nginx
  • ssh
  • Python
  • 爬虫
  • test
  • vim
  • 影视剧
  • 中间件
  • 事务
  • 表达
  • 运动
  • mybatis
  • AI
  • 产品
  • 家装
  • 土巴兔
  • 域名
  • github
  • 软件
  • 个人项目
  • Leaves
  • Chrome
  • 浏览器插件
  • 开源
  • Balance Voice
  • 穿搭
  • 幽默
  • 画画
  • 缓存
  • 摄影
  • c
  • 课程设计
  • 调酒
  • 设计模式
  • 数学

Collection

作品与友邻

我做的小工具、朋友的站点和一些长期值得回访的灵感来源。

  • 土 土巴兔 AI 导购交互演示 可点击体验用户导购、平台运营、装修公司、材料商及 AI 话术知识库的多端增长流程。 /demos/tubatu-ai-guide/
  • L Leaves 行程记录 我做的行程记录页面小工具,用来沉淀旅行路线、日程安排和途中的灵感。 https://leaves.tyrantqiao.com/
  • 本 本网站主题yilia设计者的主页 http://litten.me/
tyrantqiao的头像

tyrantqiao

github rss qq mail facebook linkedin

About

关于我

代码、海浪和持续折腾,都是生活的一部分。

<div class="aboutme-card"> <p class="aboutme-eyebrow">tyrantqiao</p> <h3>Java 全栈开发</h3> <p>常年和 Java、后端服务、前端工程、数据与部署打交道,喜欢把复杂问题拆开、写清楚,也把踩坑过程整理成文章留给后来的人。</p> <div class="aboutme-tags"> <span>Java</span> <span>Full Stack</span> <span>Backend</span> <span>Frontend</span> <span>Extreme Sports</span> </div> <p>工作之外偏爱冲浪等极限运动,享受在浪上找平衡,也享受在代码里找边界。</p> <div class="aboutme-contact"> <a href="mailto:[email protected]">Gmail</a> <a href="mailto:[email protected]">QQ Mail</a> </div> </div>