mysql面试(三)服务器配置类问题
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),我们一起学习,一起进步
以上是 mysql面试(三)服务器配置类问题 的全部内容, 来源链接: utcz.com/z/531270.html