数据库发展

一、历程

       数据库发展至今已经有3代:

       1、SQL:传统关系型数据库。例如 Mysql,Oracle,SqlServer等;

       2、noSQL : not only Sql。例如 MongoDB,Redis等;

       3、NewSQL:

二、问题

      【SQL】

        问题:伴随互联网应用的用户规模,数据量都越来越大,且要求7x24小时在线。

        解决办法:

                        1、升级服务器硬件。虽然提升了性能,但是总有天花板。

                        2、数据分片,使用分布式集群结构。可扩展性更好,但是,以前在一个库里的数据,现在跨多个库,应用系统不能自己去多个库总操作,需要使用数据库分片中间件。

                              分片中间件做的简单的数据操作时还好,一旦涉及到跨库join,跨库事务就头疼。很多IT宁愿在自己的业务层处理,复杂度很高。

        【noSQL】

          后来noSQL出现,摒弃传统SQL的强事务保证和关系模型,重点放在数据库高可用性和可扩展性。

         优点:

                        1、高可用性、可扩展性、自动分区

                        2、不保证强一致性,性能大幅提升

                        3、没有关系模型的限制,极其灵活

        缺点:

                        1、noSQL不保证强一致性,普通应用没啥问题。但是类似金融行业一样的企业级应用有强一致性的需求。

                        2、noSQL不支持sql语句,兼容性是个大问题,不同的noSQL数据库都有自己的api操作数据,比较复杂。

         【newSQL】

           newSQL提供了与noSQL相同的可扩展性,而且仍基于关系模型,还保留了极其成熟的SQL作为查询语句,保证了ACID事务特性。

           简单的来说,newSQL就是传统关系型数据库上集成了noSQL的强大可扩展性。

           传统SQL架构设计基因中是没有分布式的,newSQL生于云时代,天生就是分布式架构。

           主要特性:

                          1、支持SQL,支持复杂查询和大数据分析

                          2、支持ACID,支持隔离级别

                          3、弹性伸缩,扩容缩容对于业务层完全透明

                          4、高可用,自动容灾

三、对比     

               

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                          

posted on 2023-09-14 15:50  木乃伊人  阅读(25)  评论(0编辑  收藏  举报

导航