👽System.out.println(“👋🏼嗨,大家好,我是代码不会敲的小符,双非大四,Java实习中…”);
📚System.out.println(“🎈如果文章中有错误的地方,恳请大家指正!共同进步,共同成长?”);
🌟System.out.println(“💡如果文章对您有所帮助,希望您可以三连支持一下博主噢🔥”);
🌈System.out.println("🚀正在完成计划中:接下来的三个月里,对梦想的追逐 ");
中午去吃饭的路上,我提出了关于数据库分库分表和分区区别的问题。问了大哥们,大哥们解释的有点没听懂!!只知道这两个是不搭边的东西,我理解的也有点混乱,这里补一下基础吧!!!
把一张表的数据分成N多个区块。分区表是一个独立的逻辑表,底层是由多个子表组成。
分区是mysql内部实现的,分库分表需要代码实现。分区和分库分表并不冲突,可以结合使用。按时间进行分区比较多。
产生的问题
原因:单表数据量太大,数据库负担大,性能影响到了系统的正常使用。
解决:对其进行切分,减少数据库的负担,缩短查询时间。
分库:根据业务场景,将不同的表分别划分出一个库,降低单库的大小提高性能。
分表:按列进行切割划分。类似于一个表划分为多个子表。
优点:行记录变小,数据页可存放更多记录,减少查询时的I/O次数。业务耦合性低,业务清晰。
产生的问题
分库:同样的表在多个数据库中。降低单库的数据量。
分表:将数据进行拆分(比如根据时间、id进行拆分),降低单表的数据量。
优点:不存在单库数据量过大、高并发的性能瓶颈,提升系统稳定性和负载能力。业务程序改动较少
产生的问题
慢慢的来,别着急!学会有质量的走过每一步
我是代码不会敲的小符,希望认识更多有经验的大佬,也在努力摸索出自己的道路
欢迎添加小符微信:A13781678921,一起加油