MySQL影响性能的几个参数

来源:这里教程网 时间:2026-03-01 18:32:47 作者:

公共参数 max_connections = 151 #同时处理最大连接数,推荐设置最大连接数是上限连接数的80%左右 sort_buffer_size = 2M #查询排序时缓冲区大小,只对order by和group by起作用,可增大此值为16M query_cache_limit = 1M #查询缓存限制,只有1M以下查询结果才会被缓存,以免结果数据较大把缓存池覆盖 query_cache_size = 16M #查看缓冲区大小,用于缓存SELECT查询结果,下一次有同样SELECT查询将直接从缓存池返回结果,可适当成倍增加此值 open_files_limit = 1024 #打开文件数限制,如果show global status like 'open_files'查看的值等于或者大于open_files_limit值时,程序会无法连接数据库或卡死 --------------------------------------------------------------- Innodb_buffer_pool_size 这个参数定义了InnoDB存储引擎的表数据和索引数据的最大内存缓存区大小。和MyISAM存储引擎不同,MyISAM的key_buffer_size只缓存索引键,而Innodb_buffer_pool_size同时为数据块和索引块做了缓存,这个值设的越高,访问表中的数据需要的磁盘I/O就越少。但是设置的过大,会导致物理内存竞争过大。 索引和数据缓冲区大小,一般设置物理内存的60%-70% innodb_buffer_pool_instances = 1 #缓冲池实例个数,推荐设置4个或8个 innodb_buffer_pool_instances可以开启多个内存缓冲池,把需要缓冲的数据hash到不同的缓冲池中,这样可以并行的内存读写。 Innodb_flush_log_at_trx_commit 这个参数是控制缓存区中的数据写入到日志文件以及日志文件数据刷新到磁盘的操作时机。默认值为1。可以有以下值: 0:日志缓冲每秒一次地写到日志文件,并对日志文件作向磁盘刷新操作,但事务提交不做任何操作。 1:每个事务提交时,日志缓冲被写到日志文件,并且对日志文件做向磁盘刷新操作。 2:每个事务提交时候,日志缓冲被写到日志文件,但是不对日志文件作向磁盘刷新操作,对日志文件每秒向磁盘做一次刷新操作。 Innodb_additional_mem_pool_size 这个参数用来存在数据库结构和其他内部数据结果的内存池的大小。 Innodb_log_buffer_size 日志缓存大小 innodb_log_file_size 日志组中每个日志文件的大小 innodb_lock_wait-timeout Mysql可以自动地监控行锁导致的死锁并经行相应的处理,但是对于表锁导致的死锁,不能自动检测,该参数主要是用于在出现行死锁时候等待指定的时间后回滚。 Innodb_support_xa 设置是否支持分布式事务,默认为ON或者1,表示支持。

相关推荐