配置
SQL MOD
配置MySQL处理的方式
# 设置SQL模式
set [session/global/persist] sql_mode= `xxx`
- only_full_group_by 对于group by 聚合操作,如果出现查询有额外的值将不会执行
- ansi_quotes 禁止用双引号来引用字符串
- real_al_float real作为float 的同义词
- pires_as_concat 将|| 视为字符串的连接操作符而非 或 运算符
- strict_trans_tables /strict_all_tables 在事务存储引擎/所有存储引擎上启用严格模式出现,那么这个SQL语法检查就报错
- error_for_division_by_zero 不允许0作为除数
- no_auto_create_user 在用户不存在时不允许grant语句自动建立用
- no_zero_in_date / no_zero_date 日期数据内/ 日期数据不能为0
- no_engine_subsitiution 当指定的存储引擎不可用时报错
比较系统运行时配置和配置文件的配置
使用set 命令配置动态参数
pt-config-diff
pt-config-diff u=root,p=,h=lcoalhost /etc/my.cnf
关键性能参数
max_connections
设置MySQL允许访问的最大连接数量interactive_timeout
设置交互连接的timeout 时间wait_timeout
设置非交互连接的timeout 时间max_allow_packet
控制mysql 可以接受的数据包的大小sync_binlog
表示每写多少次缓冲会向磁盘同步一次binlogsort_buffer_size
设置每个会话使用的排序缓存区的大小join_buffer_size
设置每次会话使用的连接缓冲的大小read_buffer_size
指定了当对一个 myisam 进行扫描时所分配的读缓存池大小read_rnd_buffer_size
设置控制索引缓冲区的大小binlog_cache_size
设置每个会话用于缓存未提交的事务缓存大小
存储引擎参数
innodb_flush_log_at_trx_commit
0
每秒进行一次重做日志的刷新磁盘操作1
每次事务提交都会刷新事务日志到磁盘2
每次事务提交写入系统缓存每秒向磁盘刷新一次
innodb_buffer_pool_size
设置Innodb缓冲池的大小,应为系统可用内存的75%innodb_buffer_pool_instances
Innodb缓存池的实例个数,每个实例的大小为总缓存池大小/实例个数innodb_file_per_table
设置每个表独立使用一个表空间文件