mysql高性能第三版读书笔记之服务器配置

MySQL服务器配置,innodb_buffer_pool_size缓冲池,设置为服务器内存的75%-80%,innodb_log_buffer_size设置日子文件大小,如果太小影响写操作,如果太大影响数据恢复,innodb_log_buffer_size日子缓冲区大小,一般不需要太大,16M以内,除非需要写blob数据,可以设置大点,这样可以减少日志缓冲mutex竞争,innodb_flush_log_at_trx_commit控制日志缓冲刷新的频繁程度,0表示把缓冲日志写到文件,就是写到操作系统的缓存里面或者内存里面,每秒刷新一次,但事务提交不做操作,1表示把缓冲日志写到文件,且每次事务提提交都刷新到持久化存储,就是写到磁盘上或固态硬盘上,默认设置,也是最安全,2表示每次提交事务时把缓冲日志写到日志文件,而且是内存里面,但不刷新,跟0的区别是MySQL进程挂了,数据不丢失,整个服务器挂了,会丢失一些事务,注意把日志缓冲写到日志文件跟把日志刷新到持久化存储不同,0和2会提升性能,key_buffer_size一次性健缓冲区分配空间,table_cache_size表缓存不会立即生效,下次有线程打开表时才生效,thread_cache_size不会立即生效,下次连接关闭时产生效果,query_cache_size如果修改这个值会删除所有缓存,重新分配,重新初始化,会花很长时间,sort_buffer_size只有查询最排序操作时才分配内存,innodb_file_per_table让每一张表使用一个文件,即使打开这个选项依然需要为回滚日志和其他系统数据创建共享表空间,这个选项容易导致更差的drop table性能,导致服务器阻塞,建议是使用它设置共享表空间大小,这样不需要关注表空间回收的事情,innodb_doublewrite设置双写缓冲来避免页没写完整所导致的数据损坏,保证数据完整性,写日志文件更高效。

posted @   ppjj  阅读(196)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2018-05-10 java判断集合是否相等
2018-05-10 JavaScript调试技巧
2018-05-10 前端弹窗展示后台html文件
点击右上角即可分享
微信分享提示