暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL新手最常犯的一些错误

58

MySQL是一个功能强大的关系型数据库,但对于新手来说,在使用初期,可能多多少少会犯一些错。这里就来总结一下新手可能最常犯的错误,有些甚至产生了严重的后果。


错误1:不备份数据

问题:数据丢失的风险极大。

解决方法:定期全备(可参考:Xtrabackup的几种备份和恢复方式)+Binlog备份。


错误2:不加索引

问题:数据量一上来就出现大量慢查询。小编曾经待过的一家公司,某个活动刚上线推广不久,就出现大量响应超时。最后原因竟然是某个条件字段没加索引,最终这个项目的研发和DBA每人罚了两千。公司也损失不少,很多用户看到响应超时,就不再继续参加活动了。

解决方法:适当添加索引以加速查询速度,但是也要避免索引过多,否则会增加写操作的开销。


错误3:不优化查询

问题:性能下降,响应时间变长。

解决方法:学习如何优化SQL,使用EXPLAIN来分析查询执行计划。


错误4:使用弱密码以及不控制权限

问题:导致数据库被攻击勒索,在去年也分享过一个被勒索的案例:MySQL被黑了

解决方法:设置复杂密码,并增加客户端白名单。


错误5:不监控数据库

问题:无法及时发现和解决性能问题。

解决方法:使用监控工具监控核心指标,可以回顾:Prometheus+Grafana 监控 MySQL。比如查询响应时间、QPS、TPS、CPU和内存、磁盘使用情况。


错误6:不定期清理和优化表

问题:数据库膨胀,性能下降。

解决方法:定期清理不再需要的数据,执行optimize table(会锁表,建议低峰操作)来优化表。


错误7:使用delete一次性清空历史数据

问题:导致大事务、从库延迟。

解决方法:删除部分数据时每次删少量数据,比如1000条,分多次删除,或者使用归档工具pt-archiver;清空整张表用truncate。


错误8:不增加主键

问题:写入数据时,很可能会导致数据页频繁分裂,从而导致写入效率低和页空间浪费。

解决办法:增加自增主键。


错误9:不增加高可用

问题:数据库宿主机一宕机,业务就中断了。

解决办法:增加高可用,常用高可用方案可以查看:MySQL 常用高可用方案




这篇文章到这里还没结束,希望朋友们在留言区补充,一起来完成创作。


评论区留下你自己或者同事在MySQL上犯过哪些错误?

评论点赞前两名的小伙伴可免费获得小编的书籍

《MySQL DBA精英实战课》

统计截至2023年9月27日20:00

获奖者加下方微信领取书籍


文章转载自MySQL数据库联盟,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论