共计 1026 个字符,预计需要花费 3 分钟才能阅读完成。
一些 MySQL InnoDB 相关参数设置说明。
innodb_buffer_pool_size
此参数类似于 Oracle 的 SGA 配置,当主机做为 mysql 数据库服务器时,一般配置为整机内存的 60%~80%。
innodb_buffer_pool_instances
此参数用于设置内存缓冲池实例数,将 innodb_buffer_pool_size 配置的内存分割成 N 份,此参数当配置内存大小于 1G 时才生效,当数据库有多个会话进行数据库操作时用于并行在多个内存块中处理任务,一般配置值小于等于服务器 CPU 的个数。
max_connections
此参数用于设置 MySQL 的最大连接数,当数据库面对高并发时,这个值需要调节为一个合理的值,才满足业务的并发要求,避免数据库拒绝连接。
max_user_connections
此参数用于设置单个用户的连接数。
innodb_log_buffer_size
此参数用于设置日志缓冲区大小, 一般不用设置太大,能存下 1 秒钟操作的数据日志就行了,mysql 默认 1 秒写一轮询写一次日志到磁盘。
innodb_stats_on_metadata
此参数用于设置是否动态收集统计信息,开启时会影响数据库的性能(一般关闭,找个时间手动刷新,或定时刷新)如果为关闭时,需要配置数据库调度任务,定时刷新数据库的统计信息。
innodb_lock_wait_timeout
此参数用于控制锁的超时时间,默认为 50,这个值要注意,如果有特殊业务确实要耗时较长时,不能配置太短。
innodb_thread_concurrency
此参数用于设置限制能够进入 innodb 层的线程数
建议设置成机器 cpu 核数的 2 倍,不过大多数情况下,默认值已经足够。
innodb_write_io_threads
此参数用于写脏页的线程数(数据库写操作时的线程数,用于并发)
innodb_read_io_threads
此参数用于从磁盘读文件块的线程数 (数据库读操作时的线程数,用于并发)
假如 CPU 是 2 颗 8 核的,那么可以按照如下设置:
innodb_read_io_threads = 8
innodb_write_io_threads = 8
如果数据库的读操作比写操作多,那么可以设置:
innodb_read_io_threads = 10
innodb_write_io_threads = 6
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-10/147827.htm