mysql8怎么设置参数 mysql80怎么用( 三 )


介于MySQL会为每个连接提供连接缓冲区 , 就会开销越多的内存,所以要适当调整该值,不能盲目提高设值 。可以过'conn%'通配符查看当前状态的连接
数量,以定夺该值的大小 。
max_connect_errors = 6000
# 对于同一主机,如果有超出该参数值个数的中断错误连接,则该主机将被禁止连接 。如需对该主机进行解禁,执行:FLUSH HOST 。
open_files_limit = 65535
# MySQL打开的文件描述符限制,默认最小1024;当open_files_limit没有被配置的时候,比较max_connections*5和ulimit -n的值,哪个大用哪个,
# 当open_file_limit被配置的时候,比较open_files_limit和max_connections*5的值,哪个大用哪个 。
table_open_cache = 128
# MySQL每打开一个表,都会读入一些数据到table_open_cache缓存中,当MySQL在这个缓存中找不到相应信息时,才会去磁盘上读取 。默认值64
# 假定系统有200个并发连接,则需将此参数设置为200*N(N为每个连接所需的文件描述符数目);
# 当把table_open_cache设置为很大时,如果系统处理不了那么多文件描述符,那么就会出现客户端失效,连接不上
max_allowed_packet = 4M
# 接受的数据包大?。辉黾痈帽淞康闹凳职踩馐且蛭龅毙枰辈呕岱峙涠钔饽诖?。例如,仅当你发出长查询或MySQLd必须返回大的结果行时MySQLd才会分配更多内存 。
# 该变量之所以取较小默认值是一种预防措施,以捕获客户端和服务器之间的错误信息包,并确保不会因偶然使用大的信息包而导致内存溢出 。
binlog_cache_size = 1M
# 一个事务,在没有提交的时候 , 产生的日志,记录到Cache中;等到事务提交需要提交的时候,则把日志持久化到磁盘 。默认binlog_cache_size大小32K
max_heap_table_size = 8M
# 定义了用户可以创建的内存表(memory table)的大小 。这个值用来计算内存表的最大行数值 。这个变量支持动态改变
tmp_table_size = 16M
# MySQL的heap(堆积)表缓冲大小 。所有联合在一个DML指令内完成,并且大多数联合甚至可以不用临时表即可以完成 。
# 大多数临时表是基于内存的(HEAP)表 。具有大的记录长度的临时表 (所有列的长度的和)或包含BLOB列的表存储在硬盘上 。
#
如果某个内部heap(堆积)表大小超过tmp_table_size,MySQL可以根据需要自动将内存中的heap表改为基于硬盘的MyISAM表 。
还可以通过设置tmp_table_size选项来增加临时表的大小 。也就是说,如果调高该值,MySQL同时将增加heap表的大小 , 可达到提高联接查
询速度的效果
read_buffer_size = 2M
# MySQL读入缓冲区大小 。对表进行顺序扫描的请求将分配一个读入缓冲区,MySQL会为它分配一段内存缓冲区 。read_buffer_size变量控制这一缓冲区的大小 。
# 如果对表的顺序扫描请求非常频繁,并且你认为频繁扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能
read_rnd_buffer_size = 8M
# MySQL的随机读缓冲区大小 。当按任意顺序读取行时(例如,按照排序顺序),将分配一个随机读缓存区 。进行排序查询时 , 
# MySQL会首先扫描一遍该缓冲,以避免磁盘搜索,提高查询速度 , 如果需要排序大量数据,可适当调高该值 。但MySQL会为每个客户连接发放该缓冲空间,所以应尽量适当设置该值,以避免内存开销过大
sort_buffer_size = 8M
# MySQL执行排序使用的缓冲大小 。如果想要增加ORDER BY的速度,首先看是否可以让MySQL使用索引而不是额外的排序阶段 。
# 如果不能,可以尝试增加sort_buffer_size变量的大小

推荐阅读