问题引入:
假设一个面试题:这边有个数据库,单表数据1000w数据,未来一年还会增加500w,性能会比较慢,怎么优化?
思路:
不分库分表:
软优化:数据库参数调优;分析慢查询sql,分析执行计划,进行sql改写以及程序改写;优化数据的索引结构;优化数据表结构;引入NoSQL数据库和程序架构调整。
硬优化:
提升系统硬件(更快的IO、更大的内存)- 带宽、CPU、硬盘。
分库分表:
1.根据业务情况而定、选择合适的分库分表策略(没有通用策略)
外卖、物流 、电商领域。
2.先看只分表是否满足业务的需求和未来增长的数据量
数据库分表能够解决单表数据量很大时,数据查询效果问题,
无法给数据库的并发操作带来效率上的提高,分表的实质上还是在一个数据库中进行操作,收到IO性能限制,
如果单表解决不了需求,再进行分库分表操作。
结论:在数据量访问压力不是特别大的情况下,首先考虑读写

面对单表大量数据,可以通过数据库参数调优、索引优化等软优化手段提升性能。当数据量巨大,考虑分库分表,如根据ID范围或Hash取模策略。分库分表能解决并发和性能问题,但会引入分布式事务和ID冲突等挑战,常用解决方案包括雪花算法等。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



