一些比较常用的mysql参数?
开启binlog:
log_bin=mysql-bin #binlog的文件名, 当文件达到最大时, 会在后台加1,2,3...之类的数字 sync_binlog=1 #每次事务提交都把binlog写到磁盘 innodb_support_xa=1 #支持内部xa事务
innodb_flush_log_at_trx_commit: 0表示只依赖master thread每一秒钟把redolog写入磁盘, 1表示每次事务提交都把redolog写入磁盘, 2表示每次事务提交把redolog写入到操作系统的文件系统缓存, 这样如果只是mysql down了操作系统没down,那么redolog还是会写入到磁盘去, 并且可以获得较高的性能
innodb_buffer_pool_size: 缓冲池大小, 主要用来缓存索引页, 数据页, undo页, hash索引, 插入缓冲, 锁信息, 数据字典等, 用命令查看是否有足够的缓冲: SHOW GLOBAL STATUS LIKE 'innodb_buffer_pool_pages_%'; Innodb_buffer_pool_pages_free就是剩余的可用缓冲内存
long_query_time: 慢查询的时间
log_slow_queries: 是否开启记录慢查询日志, 默认不开启
log_queries_not_using_index: 把没有使用索引的查询也记录到慢查询日志中去
log_throttle_queries_not_using_index: 每分钟最多记录多少个没使用索引的慢查询, 默认不限制
log_output: FILE/TABLE, 表示慢查询是记录到文件还是表, 默认是FILE
long_query_io: 超过这个逻辑IO次数的语句记录到慢查询日志, 默认为100
slow_query_type: 0表示不记录慢查询日志, 1表示根据运行时间记录慢查询日志, 2表示根据逻辑IO次数记录慢查询日志, 3表示根据运行时间和逻辑IO次数记录慢查询日志