分库分表

前言:

当数据库表中的数据过大时,查询速度变慢,会影响整个业务模块的性能。

解决方案:

首先考虑:缓存、加索引、优化sql语句。若数据量极大,且持续增长可考虑水平分表、水平分库。

与水平分库、水平分表对应的还有,垂直分库、垂直分表。垂直分库、垂直分表一般来说在系统设计阶段的时候根据业务情况来确定如何分。

相关概念:

垂直分表:把一个表中的字段,按访问频次、是否是大字段的原则拆分多个表。(注意:拆分后,尽量从业务角度方面避免联合查询,否则性能方面得不偿失)

垂直分库:把多个表按业务耦合松紧,分别存放在不同的库,这些库可以分布在不同的服务器上。

水平分表:把一个表中的数据分摊到同库相同结构的表中。

水平分库:把一个表中的数据分摊到不同库相同结构的表中。

其它方案:

系统业务的基础数据和该业务的不同维度的查询数据分开,基础数据保证核心功能正常运转。查询所需数据可用定时任务从基础数据中收集出来。

不同方案带来的性能提升不同,可按实际情况而定。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容