MySQL My.cnf参数梳理与延伸 (MYSQL 8 cache and buffer类)
开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,(共1700人左右 1 + 2 + 3 + 4) 3群突破 490已关闭自由申请如需加入请提前说明,新人会进4群(210+)准备开5群,另欢迎 OpenGauss 的技术人员加入。
最近人员变动,群主需要重新梳理一下MySQL的配置参数,方便后续的工作与标准化,没有小弟做了,自己就的上阵了。实话实说,最近一直忽视了MySQL所以有些知识的在从新拾起来。
鉴于MySQL 8 的一些参数的确由于版本的变动有很多变化,所以进行梳理。
1 cache 与 buffer 类
14 table_open_cache 这个参数主要的目标是在打开表后将表的元数据部分进行缓存,避免频繁打开和关闭表引起的性能问题,通过缓存,在用到的时候,直接通过缓存里面的数据来进行表的操作,更大的cache 有助于一些大表的打开速度提高。
15 thread_cache_size (256)在MySQL 处理客户请求的时候,会为客户创建一个新的连接来处理客户的请求,创建和销毁线程都是一项昂贵的操作,会消耗大量的系统资源和时间,thread_cache_size 决定了MySQL在内存中维护线程缓存的数量,较大值可以提高链接处理的速度,使得mysql不需要频繁的创建和销毁线程,在5.7 下默认值为0 , 在MYSQL 8.0 默认值为 9
16 schema_definition_cache用于控制缓存存储在内存中的数据对象的元数据定义的信息存储,包含库,表,索引,列定义。在 MySQL中要访问这些数据库对象元数据定义信息时,MySQL会从磁盘加载这些信息,然后存储在内存中查询使用,schema_definition_cache 就是来存储这些信息的缓存默认2为 256 对于一些表数量多,字段多的数据库,提高这个值有利于对于表的统计信息的获取和处理。
join_buffer_size 2MBkey_buffer_size 默认值metadata_locks_cache_size 默认值 1024open_files_limit 655350schema_definition_cache 256table_definition_cache 32768table_open_cache 32768table_open_cache_instances 16thread_cache_size 256sort_buffer_size 2MBselect_into_buffer_size 1MB (8.022 替换 read_buffer_size)read_buffer_size 1MBread_rnd_buffer_size 1MBpreload_buffer_size 32768bulk_insert_buffer_size 32768innodb_buffer_pool_instances 根据CPU有关innodb_buffer_pool_size 75%