浅谈数据库优化经验积累(一)
2021/5/10 19:25:35
本文主要是介绍浅谈数据库优化经验积累(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
最近因为客户的项目数据量过多,导致数据库经常出现CPU使用率100%、服务器卡死等问题。搞得我焦头乱额。
发现有几个地方出现了严重的问题。
1、分表设计
当时并未考虑到用户的数据居然会有一日几十万条。只做了一张表来存储。并未做分表设计。导致数据量过多。查询极慢。
解决方案:对数据量大的表进行分表处理。以月为单位。这样下来。一张表。大概在数千万条数据。日志表。没有其它操作。所以千万条数据还是没问题。
2、主键设计
项目开始的时候。因为数据库是由另外一个同事(中途因为不合群被近离开公司)负责,沟通不到位,很多表都未设置主键。导致一些日志表查询缓慢。
解决方案:当时负责数据表审核的同事已离职,我一个一个表加上索引。
3、表结构设计
都是坑。2个人设计的数据库表,沟通又不在一频道,便出现了你干你的。我干我的。导致后面问题一堆。
解决方案:嘴里边BB。连修改表字段。把那些2人重复的字段整合。
4、查询语句
当时加入项目组的时候。是以外派人员身份过来的(也就是临时工,3个月完后就离开);所以当时查询语法也是按那位已离开的同事的习惯来写的。然后就出现了一大堆的多表查询。有些地方竟然还出现了5张表的连表查询。当数据量达到上10W的时候。直接挂了。好几次都是因为这样的问题被客户找。
解决方案:把所有的数据量多的表有连表查询的地方都拆分多次查询了。(大部分是在客户线上的项目出现了问题导致服务器挂掉,才排查出来 (>﹏<))!!
总结:在项目开始时。就要把数据库表结构、哪些表数据量会很多(多的表要提前做好分表处理)、合理的设置表索引;不然项目运营后出现这些问题。虽然可以处理,但是对于已经存在的少量数据进行处理也是个头疼的事情; 上面这些,仅是我个人在项目中遇到问题并且解决问题的一些积累。写得没有技术含量还请包涵。语文只能勉强考60分的我已经表示很吃力了。做了7年的IT。这是第一次写这类文章,以后慢慢积累慢慢进步!!有问题可以留言。
上面说到的只是一小部分,还有后续。
这篇关于浅谈数据库优化经验积累(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-20测试人员都是画画大神,让我看看谁还不会用代码图?
- 2024-05-20年薪百万的程序员都在用的摸鱼方式……
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了