mysql高性能第三版读书笔记4

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设置双写缓冲来避免页没写完整所导致的数据损坏,保证数据完整性,写日志文件更高效。

原文地址:https://www.cnblogs.com/nizuimeiabc1/p/12862764.html