课程名称:MySQL面试指南
课程章节:影响MySQL性能的关键参数
主讲老师:sqlercn
课程内容:
今天学习的内容包括:
影响MySQL性能的关键参数
课程收获:
+----+----------------------+--------------------------------------------------------------+
| | 参数 | 说明 |
+----+----------------------+--------------------------------------------------------------+
| | max_connections | MySQL的最大连接数,过大会超内存 |
| 基 | interactive_timeout | 设置交互连接的timeout时间(交互式如:MySQL命令行) |
| 础 | wait_timeout | 设置非交互连接的timeout时间(非交互式如:业务程序数据库连接) |
| 配 | max_allowed_packet | 控制MySQL可以接收的数据包的大小 |
| 置 | sync_binlog | 每写多少次缓冲时向磁盘同步一次binlog(主数据库最好及时写磁盘) |
+----+----------------------+--------------------------------------------------------------+
| | | 设置每个会话使用的排序缓存区的大小(会话连接时并不会立即分配, |
| | sort_buffer_size | 而是在执行排序时才分配,如果同时有很多连接执行排序,则很可能会 |
| | | 消耗巨大的内存) |
| |----------------------+--------------------------------------------------------------+
| | join_buffer_size | 设置每个会话中join时连接所使用的缓冲的大小(建议不要设置的太大, |
| | | 可以在单次查询的session中根据需要单次调整大小) |
| 会 |----------------------+--------------------------------------------------------------+
| 话 | read_buffer_size | 指定了当对一个MYISAM进行表扫描时所分配的读缓存池的大小(大小为 |
| 内 | | 4KB的整数倍) |
| 存 |----------------------+--------------------------------------------------------------+
| 分 | read_rnd_buffer_size | 设置控制索引缓冲区的大小(只有在查询的时候才分配,查询时分配的大小 |
| 配 | | 小于或等于此值) |
| |----------------------+--------------------------------------------------------------+
| | | 设置每个会话用于缓存未提交的事务缓存大小(过小会导致使用磁盘作为缓 |
| | binlog_cache_size | 冲,可以通过两个变量的值来判断size的设置是否合适: |
| | | binlog_cache_disk_use 当size过小时,使用磁盘作为缓冲的次数 |
| | | binlog_cache_use 使用内存作为缓冲的次数) |
+----+----------------------+--------------------------------------------------------------+
| | | 0:每秒进行一次重做日志的磁盘刷新操作。 |
| | innodb_flush_log_at_ | 1:每次事务提交都会刷新事务日志到磁盘中。 |
| | trx_commit | 2:每次事务提交写入系统缓存每秒向磁盘刷新一次 |
| 存 |----------------------+--------------------------------------------------------------+
| 储 | innodb_buffer_pool_ | 设置Innodb缓冲池的大小,应为系统可用内存的75%。 |
| 引 | size | |
| 擎 |----------------------+--------------------------------------------------------------+
| 参 | innodb_buffer_pool_ | Innodb缓冲池的实例个数,每个实例的大小为总缓冲池大小V实例个数。 |
| 数 | instances | |
| |----------------------+--------------------------------------------------------------+
| | innodb_file_per_table| 设置每个表独立使用一个表空间文件,MySQL5.7以后是默认值 |
| | | |
+----+----------------------+--------------------------------------------------------------+