当前位置:首页 > 报告详情

如何让MySQL保持高效的N个好习惯(47页).pdf

上传人: 云闲 编号:91323 2021-01-01 47页 4.45MB

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了如何使MySQL保持高效运行的N个好习惯以及一些关键的DDL和SQL写作技巧。 硬件方面,建议使用高主频、大缓存的CPU,快速的SSD或PCIe SSD硬盘,以及高速网络。操作系统方面,应关闭无用服务,使用本地高速存储,避免使用NFS,数据库应运行在专用的服务器上,避免混搭。此外,应选择合适的io调度器,如deadline或noop,避免使用cfq。文件系统方面,推荐使用xfs或ext4,避免使用ext3。 DDL和SQL写作方面,建议每个表都有主键,避免没有主键导致的多次读写和复制延迟。应适当使用TEXT/BLOB类型,避免数据页分裂。每个表应增加create_time和update_time字段,方便日常运维管理。索引设计应考虑基数低的字段不必建立单列索引,字符型字段上建索引时优先采用部分索引。避免在WHERE子句中使用函数和运算,尽量使用inner join,避免LIKE查询时使用%通配符。 运维习惯方面,应抛弃MyISAM,使用InnoDB,适当场景下可以采用TokuDB。关闭QUERY CACHE,使用独立undo表空间,启用thread pool,调整关键选项,如innodb_buffer_pool_size、innodb_log_file_size、innodb_flush_log_at_trx_commit等。 其他好习惯包括启用辅助监控机制,如干掉超过N秒的SQL、干掉疑似注入SQL、干掉长时间不活跃的sleep连接。使用pt-osc进行online ddl,但不是必须的。删除大表时,先rename,再用硬连接的方法物理删除。避免长时间持有行锁,影响tps。 总之,要保持MySQL的高效运行,需要从硬件、操作系统、DDL、SQL写作、运维习惯等多个方面入手,养成良好的编程和运维习惯。
"如何提升MySQL性能?" "写出好SQL的秘诀是什么?" "如何培养良好的数据库运维习惯?"
客服
商务合作
小程序
服务号
折叠