计算机mysql怎么设置 设置mysql的sqlmode( 五 )


# 主线程中每秒会将重做日志缓冲写入磁盘的重做日志文件(REDO LOG)中 。不论事务是否已经提交)默认的日志文件是ib_logfile0,ib_logfile1
# 1:当设为默认值1的时候,每次提交事务的时候,都会将log buffer刷写到日志 。
# 2:如果设为2,每次提交事务都会写日志 , 但并不会执行刷的操作 。每秒定时会刷到日志文件 。要注意的是,并不能保证100%每秒一定都会刷到磁盘,这要取决于进程的调度 。
# 每次事务提交的时候将数据写入事务日志,而这里的写入仅是调用了文件系统的写入操作,而文件系统是有 缓存的,所以这个写入并不能保证数据已经写入到物理磁盘
# 默认值1是为了保证完整的ACID 。当然,你可以将这个配置项设为1以外的值来换取更高的性能,但是在系统崩溃的时候,你将会丢失1秒的数据 。
# 设为0的话,mysqld进程崩溃的时候,就会丢失最后1秒的事务 。设为2,只有在操作系统崩溃或者断电的时候才会丢失最后1秒的数据 。InnoDB在做恢复的时候会忽略这个值 。
# 总结
# 设为1当然是最安全的 , 但性能页是最差的(相对其他两个参数而言 , 但不是不能接受) 。如果对数据一致性和完整性要求不高 , 完全可以设为2,如果只最求性能,例如高并发写的日志服务器,设为0来获得更高性能
innodb_log_buffer_size = 2M
# 此参数确定些日志文件所用的内存大?。訫为单位 。缓冲区更大能提高性能,但意外的故障将会丢失数据 。MySQL开发人员建议设置为1-8M之间
innodb_log_file_size = 32M
# 此参数确定数据日志文件的大小 , 更大的设置可以提高性能,但也会增加恢复故障数据库所需的时间
innodb_log_files_in_group = 3
# 为提高性能,MySQL可以以循环方式将日志文件写到多个文件 。推荐设置为3
innodb_max_dirty_pages_pct = 90
# innodb主线程刷新缓存池中的数据,使脏数据比例小于90%
innodb_lock_wait_timeout = 120
# InnoDB事务在被回滚之前可以等待一个锁定的超时秒数 。InnoDB在它自己的锁定表中自动检测事务死锁并且回滚事务 。InnoDB用LOCK TABLES语句注意到锁定设置 。默认值是50秒
bulk_insert_buffer_size = 8M
# 批量插入缓存大?。?这个参数是针对MyISAM存储引擎来说的 。适用于在一次性插入100-1000+条记录时,提高效率 。默认值是8M 。可以针对数据量的大小,翻倍增加 。
myisam_sort_buffer_size = 8M
# MyISAM设置恢复表之时使用的缓冲区的尺寸,当在REPAIR TABLE或用CREATE INDEX创建索引或ALTER TABLE过程中排序 MyISAM索引分配的缓冲区
myisam_max_sort_file_size = 10G
# 如果临时文件会变得超过索引 , 不要使用快速排序索引方法来创建一个索引 。注释:这个参数以字节的形式给出
myisam_repair_threads = 1
# 如果该值大于1,在Repair by sorting过程中并行创建MyISAM表索引(每个索引在自己的线程内)
interactive_timeout = 28800
# 服务器关闭交互式连接前等待活动的秒数 。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端 。默认值:28800秒(8小时)
wait_timeout = 28800
# 服务器关闭非交互连接之前等待活动的秒数 。在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值 , 
# 取决于客户端类型(由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义) 。参数默认值:28800秒(8小时)
# MySQL服务器所支持的最大连接数是有上限的,因为每个连接的建立都会消耗内存,因此我们希望客户端在连接到MySQL Server处理完相应的操作后,

推荐阅读