公司动态

当前所在位置:网站首页 > 公司动态

六星教育:理解分库分表的重要性,加深对JAVA语言的学习

六星教育:理解分库分表的重要性,加深对JAVA语言的学习

对于熟悉Java这种语言的人来说,六星教育可以毫不犹豫的说,一定会知道分库分表的含义,以及为什么要进行这个行为?今天六星教育对于分库分表再进行详细说明,希望能帮助同学们!

为什么要进行分库分表?这个行为很有必要吗?

当一张表的数据达到几千万时,查询一次所花的时间会变长。这时候,如果有联合查询的话,可能会卡死在那儿,甚至把系统给拖垮。

目前系统将近20亿数据,每张表较大的接近600w条/表,每条数据大约3k,每个表将近1.5G的数据,导致查询经常**时。

而分库分表的目的就在于此:减小数据库的负担,提高数据库的效率,缩短查询时间。另外,因为分库分表这种改造是可控的,底层还是基于RDBMS,因此整个数据库的运维体系以及相关基础设施都是可重用的。

一般说来,在分库分表中,主要思想都是化大为小,化复杂为简单,融合使用。在日常工作中,经常使用垂直分表、垂直分库、水平分表、水平分库分表等这四种方法进行分库分表。

垂直分表在日常的开发和设计中比较常见,一个表的字段不要太多,就算数据量没有那么大,为了表的合理性我们也会做。

查询时**查询常用字段,在有必要时才查询拓展字段。可以有效的提高效率,同时减少字段后我们在一个表中可以容纳的数据数量也提高了。还能使得我们的微服务的关注点更加明确。

垂直分库的基本思路便是我们按照不同的业务模块来划分出不同的数据库。垂直分库在“微服务”盛行的今天已经非常普及了。比如在业务中,User, Product, Company等都属于不同业务模块,便可将其放在不同的数据库。

水平分表的思想很简单,在数据库中的表现是,一个User表有100万条数据,那么0-10w放在一个表中,10-20w放一个表中,类推。这样可以降低单表的数据量,优化查询性能。

水平分表能够降低单表的数据量,在一定程度上能够缓解查询性能的瓶颈。但其本质上还是在一个数据库中,所以当查询上升到数据库级,其IO瓶颈并没有得到好的解决。

水平分库分表与水平分表的思想相同,即将同一表中的大量数据分层次的储存,不同的在于将分出来的表放在不同的数据库中。在高并发和海量数据的场景下,分库分表能够有效缓解单机和单库的性能瓶颈和压力,突破IO、连接数、硬件资源的瓶颈。

六星教育《JavaVIP体验课-分库分表》课程即将开放,定时直播,近距离与Java大咖交流,分享学习心得,实时答疑解惑,提高自己对于Java编程语言的理解。

本课程主要讲解分库分表并且基于高级计算的分库分表。如果你想学习分库分表,或者想解决数据库压力,都可以来听此课程。值得注意的是,Java架构师VIP课程将会有更加详细的学习内容,想了解的都可以私信六星教育或者在评论区留言,六星教育会在**时间给您答复。

liuxingjiaoyu.b2b168.com/m/

返回目录页