在日常开发任务中,经常会遇到单张表过1千万,以每天n万条的速度进行递增。sql查询效率下降,前端业务表现为用户操作缓慢,如查sql查询速度超过1秒或者更长,会发生一条sql把整个数据库连接占满,用户看到的就是白页面或报错的页面。
mysql数据库存储是系统最后一道护城河,以最谨慎的态度对待。系统就像一个成长的小树,慢慢的长大,每一天的成长都需要不停的修剪、不停的优化。
关于大表的优化常见的思路就是分表、分库、数据分区,降低单表容量,提高单表查询速度。可是细细想来,优化不仅仅是分表分库简单的操作,而是站在系统设计的角度去考虑。
秩序是自由的第一条件
1 数据量过千万的不同场景
1)数据量千万级,随着时间快速增长。
这样的表大多是订单表、日志表。过亿只是时间问题。
2)数据量千万级,相对变化缓慢
例如用户表在增长的过程中一般不会爆炸式的增长。
3)审视业务
虽然有过千万的数据,这些数据是否都合理,是否要长期维护。与产品业务进 行沟通数据的存在合理性。
2 优化
1)规范设计
2)业务层优化
3)架