首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高性能MySQL第八章 读书笔记

高性能MySQL第八章 读书笔记

作者头像
用户7962184
发布2020-11-20 15:00:39
4600
发布2020-11-20 15:00:39
举报
文章被收录于专栏:没事多喝水没事多喝水

第八章 优化服务器设置

  • 服务器的设置并不能一概而论,也不能依靠网上所谓的优化脚本,默认的配置就已经很好了,需要调整的是InnoDB的缓存池大小和文件日志大小(原来的配置是让mysql在性能一般的机器也能正常运行,太小了)
  • 配置有全局的和线程的,但是注意,并不是所有的配置一旦设置就能生效,每个配置都有自己重新生效的时机。
  • 有些可配置的内存也不是越大越好的,配置越大会导致内存消耗过快而频繁内存交换降低性能。
  • 调整配置应该放在最后,而且除非是真的遇到了只有调整配置能解决的问题才去调整配置,否则应该把重心放在查询语句和schema中。
  • innodb的缓存池尽可能大确实是能提高效率,但是也要为其他的一些内存损耗留下一些空间。分配太多了是一件很糟糕的事情。但是放置mysql中服务器的内存要是还有较多空间没有利用的,那适当压榨一下很好的。
  • 32位Linux内核通常限制任意进程可用的内存存量在2.5GB到2.7GB之间。
  • mysql每个连接也会使用到内存,每条连接也有可能会使用到大量的内存,可以监控服务器的内存波动,避免内存不足。
  • innodb缓存池比其他东西更需要内存,它不单单缓存索引,还缓存行的数据,自适应哈希索引,插入缓存,锁,以及其他的内部数据结构。innodb还使用缓冲池来帮助延迟写入,合并多个写出操作。分配很多内存也会导致预热和关闭会花费较长时间。
  • MySQL会有一个线程池,来快速响应新的连接。
  • innodb会有自己的表缓存,叫数据字段,一张4kb或者更多,如果表太多(数千或数万张),也可能占用大量内存。
  • innodb利用日志把随机IO 变成顺序io。
  • 日志文件是循环写入的,写到日志的尾部之后会回到头部继续写入。
  • 整体日志文件的大小受控于innodb_log_file_size 和innodb_log_files_in_group 两个参数,在高性能服务器上,至少需要几百M甚至上G的日志文件。
  • 如果日志过大,也会影响数据库重新启动的时间。
  • Innodb将内存中的日志缓存刷到磁盘的时候,会先使用一个锁锁住缓冲区,刷新到所需要的位置,然后移动剩下的条目到缓冲区的前面。
  • innodb_flush_log_at_trx_commit变量可以用来控制mysql的日志刷新行为

0:日志每秒刷新,但是在事务提交时不做任何处理,1,每次提交都刷新,这是最安全的也是默认的。2,每次事务提交都把日志缓存写到日志文件,再由innodb每秒做一次刷新。

  • 把日志缓冲写到文件日志里:大部分操作系统中只是简单的把数据从InnoDB的内存缓冲转移到了操作系统的缓存,并没有真正写入磁盘。
  • 把日志刷新到持久化存储是Innodb请求操作系统吧数据刷出到缓存,并确认写入磁盘,是阻塞的。
  • 这就是为什么2跟0之间的差别。2就算mysql进程停止了,机器只要正常还是能把日志刷到磁盘里的。
  • 如果是类UNIX操作系统,并且有RAID控制器,关于如何打开和刷新日志以及数据文件的innodb_flush_method建议使用0 _DIRECT,利用这个配置选项可以关闭操作系统缓存,如果不是,选择默认。
  • Innodb用双写缓冲来避免页没有写完整导致的数据损坏。双写缓冲是表空间一个特殊的保留区域,本质上是最近写回的页面的备份拷贝。当Innodb从缓冲池刷新页面到磁盘时,首先把它们写到双写缓冲中。可配置innodb_doublewrite为0去关闭双写缓冲。
  • read_only配置可以让备库只接受从主库传输过来的变更。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第八章 优化服务器设置
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档