SQL_MODE
- 配置 MySQL 处理 SQL 方式
- set [session/global/persisi] sql_model='xxxx'
- [mysqld] sql_model=xxx
SQL_MODE |
说明 |
ONLY_FULL_GROUP_BY |
对于 GROUP BY 聚合操作,如果出现在 SELECT 中的列、HAVING 或者 ORDER BY 子句的非聚合列,没有在 GROUP BY 中出现,那么这个 SQL 语法检查报错 |
ANSI_QUOTES |
禁止使用双引号来引用字符串 |
REAL_AS_FLOAT |
Real 作为 float 的同义词 |
PIPES_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_SUBSTITUTION |
当指定存储引擎不可用时报错 |
使用 set 命令配置动态参数
- set[session|@@session.]system_var_name=expr
- set[global|@@global.]system_var_name=expr
- set[persist|@@persist.]system_var_name=expr
使用 pt-config-diff 工具比较配置文件
- pt-config-diff u=root, p=, h=localhost /etc/my.cnf
常用性能参数
|
参数 |
说明 |
服务器配置参数 |
max_connections |
设置 MySQL 允许访问的最大连接数量 |
|
interactive_timeout |
设置交互连接的超时时间 |
|
wait_timeout |
设置非交互连接的超时时间 |
|
max_allowed_packet |
MySQL 可以接收的数据包大小 |
|
sync_binlog |
每写多少次缓冲会向磁盘同步一次 binlog |
|
sort_buffer_size |
设置每个会话使用的排序缓存区的大小 |
|
join_buffer_size |
设置每个会话使用的连接缓冲的大小 |
|
read_buffer_size |
当对一个 MYISAM 进行表扫描时锁分配的读缓存池大小 |
|
read_rnd_buffer_size |
设置控制索引缓冲区大小 |
|
read_rnd_buffer_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 |
设置每个表独立使用一个表空间文件 |
欢迎扫描下方二维码,持续关注:
互联网工程师(id:phpstcn),我们一起学习,一起进步
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。