好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

mysql 配置文件my.cnf优化参数配置说明

 

table_definition_cache = 2048

这个参数是缓存frm文件。

 

max_connections = 512

最大连接数,也就是支持多少个客户端的同时连接数,并不是越大越好。

 

max_connect_errors = 1000

如果 MySQL 服务器连续接收到了来自于同一个主机的请求,而且这些连续的请求全部都没有成功的建立连接就被中断了,当这些连续的请求的累计值大于 max_connect_errors 的设定值时, MySQL 服务器就会阻止这台主机后续的所有请求。如果是远程服务器可适当的调高这个值。

 

open_files_limit = 65535

文件最大的打开数。系统一般默认可打开65535个

 

innodb_file_per_table = 1

独立表空间开关,如果设置为0即使用共享表空间。

共享表空间: 可以将表空间分成多个文件存放到各个磁盘上。所有的数据和索引存放到一个文件中,虽然可以把一个大文件分成多个小文件,但是多个表及索引在表空间中混合存储,这样对于一个表做了大量删除操作后表空间中将会有大量的空隙,特别是对于统计分析,日值系统这类应用最不适合用共享表空间。

独立表空间: 每个表都有自已独立的表空间。每个表的数据和索引都会存在自已的表空间中。可以实现单表在不同的数据库中移动。

 

innodb_buffer_pool_size = 6G

看到这个值的时候是不是有点小惊呀!没错,我还算设置得比较小的,因为我还需要分配给Redis使用的内存,因为我是16G内存,如果我只跑Mysql的情况下这个值设置在12G左右是比较合适的。差不多是总内存的75%。

innodb_buffer_pool_size对InnoDB的效率影响很大。因为InnoDB会把尽可能多的数据和索引缓存在缓冲区。

 

innodb_log_file_size = 2G

为InnoDB引擎设置合适的Redo log空间对于写敏感的工作负载来说是非常重要的。然而,这项工作是要做出权衡的。你配置的Redo空间越大,InnoDB就能更好的优化写操作;然而,增大Redo空间也意味着更长的恢复时间当出现崩溃或掉电等意外时。

在 高写入 负载尤其是数据集很大的时候,这个值非常重要,值越高性能越好。

 

innodb_log_buffer_size = 16M

默认的设置在中等强度的写入负载及短事物处理时,性能还可以。但是存在大量更新操作或者负载较大时,就要慢慢增加这个参数的值了。不过不要设置太大,会浪费内存。它每秒都会刷新一次,所以不用设置超过1s所需的内存空间,16M足够了。

 

innodb_flush_log_at_trx_commit = 2

设置为0:log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行。该模式下在事务提交的时候,不会主动触发写入磁盘的操作。

设置为1:每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去,该模式为系统默认。

设置为2:每次事务提交时MySQL都会把log buffer的数据写入log file,但是flush(刷到磁盘)操作并不会同时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作。

设置为2兼顾效率与安全 。设置为1最安全!!!

 

innodb_lock_wait_timeout = 50

默认参数:innodb_lock_wait_timeout设置锁等待的时间是50s,一旦数据库锁超过这个时间就会报错。

查看更多关于mysql 配置文件my.cnf优化参数配置说明的详细内容...

  阅读:52次