MySQL部署和操作规范
规范的部署和操作可以让MySQL更加安全,并且可以提高数据库的性能。
选择合适的MySQL版本
不建议使用太旧的版本
因为很多特性旧版本都没有,并且性能也没有新版本的好
线上环境建议使用 GA (General Availability,正式发布的版本)
必须开启 Binlog
Binlog 的两个主要作用:复制和灾备
在通常情况下,必须开启 Binlog
对数据安全要求较高的场景,建议设置为“双 1”
innodb_flush_log_at_trx_commit 参数和 sync_binlog 参数都设置为 1
配置不区分大小写
可以将 lower_case_table_names 参数设置为 1,表示表名以小写形式存储在磁盘上,并且不区分大小写
如无特殊说明,设置业务用户只有增、删、查、改的权限
权限最小化可以大大降低误删数据库的风险
合理设置缓冲池
将 innodb_buffer_pool_size 参数设置为机器内存的 60%~75%
批量导入、导出、更新、删除操作建议在业务低峰操作,并且要提前通知DBA协助观察
批量导入、导出、更新、删除操作以及会导致主从延迟和磁盘空间增加的操作(如碎片整理、增减字段等)建议在业务低峰进行。防止这些操作对线上业务影响。例如,批量删除数据可能会导致主从延迟,如果有从库提供业务查询,可能会导致读取延迟。碎片整理、增减字段等操作,短时间需要大量的磁盘空间,可能会导致数据库磁盘跑满
如果有可能导致 MySQL QPS 上升,应提前告知 DBA
如果超过现有数据库配置所能承载的最大 QPS,则需要考虑扩容