首页 > 数据库 >数据库发展

数据库发展

时间:2023-09-14 15:55:05浏览次数:29  
标签:发展 noSQL 可扩展性 数据库 分片 SQL newSQL

一、历程

       数据库发展至今已经有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、高可用,自动容灾

三、对比

            

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                          

标签:发展,noSQL,可扩展性,数据库,分片,SQL,newSQL
From: https://www.cnblogs.com/xiaobaicai12138/p/17702694.html

相关文章

  • MySQL数据库的DML语法及使用举例
    本文列举数据库的操纵语言的语法及实际使用,以班级表作为举例:班级表:classroom点击查看创建班级表sqlcreatetableclassroom( cidintPRIMARYKEYauto_increment, cnamevarchar(20), desvarchar(50));一、插入数据语法:insertinto表名[(字段名….)]values(值….......
  • 关系数据库设计与范式回顾
    今天先把关系数据库设计及范式相关知识回顾总结一下,大部分出自我2010年底的学习笔记,发上来供大家参考,同时也希望对看到的人有所帮助。--------------------------------------------一、三大范式1、第一范式:消除一个字段包含多个数据库值,消除一个记录包含重复的组(单独的一列包含多......
  • 关于批量写入数据库
    今天上午写个程序要将几张表内的数据读出写入一张表(2w多数据),开始没有使用批处理(每条写入都自动commit),写入速度在分钟级(太慢了后来就没计时),后来添加了批处理(不自动commit),全部用时20多秒。可见批处理写入数据库要快很多。程序大致结构如下:EntityManagerem=JPA.em();em.setFlus......
  • 关系数据库扩展知识总结
    最近在学习分布式数据库架构相关的知识(主要是Mysql),并对数据库扩展这部分知识整理总结了一下,希望对看到的人有所帮助,也希望读者能多提建议。-----------------------------------------------------------关系型数据库扩展的几个步骤:一、第一步:主从复制+读写分离......
  • Myspace数据库架构经验学习
    50万账户两台Web服务器和一个数据库服务器。第二代架构:运行在3个SQLServer数据库服务器,一主二从,读写分离。1-2百万账户垂直分割:不同的数据库服务于站点的不同功能,如登录、用户资料和博客。账户到达2百万后,数据库服务器开始受制于I/O容量,用高带宽、专门设计的网络将大量磁盘存储设......
  • Navicat远程链接openGauss数据库
    文章目录前言一、环境准备二、openGauss服务设置步骤2.1切换至用户openGauss2.2添加放行IP2.3修改加密方式3.4重启openGauss服务3.5创建远程连接角色备注总结 前言最近这段时间再整理openGauss数据库相关内容,在这里总结记录并分享一些基础的操作以及遇......
  • N天爆肝数据库——MySQL(2)
    (N天爆肝数据库——MySQL(2))链接:link这是csdn专栏链接,大家可以看一看,提提意见本篇文章,主要对DMLDQL进行知识总结和学习。期待和大家一起学习进步。DML-介绍DML(数据库操作语言),用来对数据库中表的数据记录进行增删改操作。添加数据(INSERT)修改数据(UPDATE)删除数据(DELET......
  • Citrix SQL数据库查询和替换修改字段
    1如下图,右键指定库新建查询即可2粘贴底部代码后,如下,点击执行查询即可--查看Citrix站点数据库如下表内容字段select*fromchb_config.Controllers;select*fromADIdentitySchema.Services;select*fromHostingUnitServiceSchema.Services;select*fromAppLibrarySchem......
  • 数据库使用uuid的影响
    关于数据库主键性能差异比较对象:(自增主键、有序uuid、无序uuid)前置条件:根据自增主键、有序uuid、无序uuid相同环境相同条件新增3张测试表,分别向每张表插入5020000数据1、插入性能:插入耗时对比:自增:91257ms有序uuid:98779ms无序uuid:275468ms2、对比页的分裂数自增page_......
  • MySQL 和 Python:无缝结合的数据库应用
    MySQL和Python都是广泛应用于软件开发的重要工具。MySQL是一种强大的关系型数据库管理系统,而Python则是一种灵活的高级编程语言。它们之间的紧密集成为开发人员提供了强大的数据存储和操作能力。本文将探讨MySQL和Python之间的关系,并提供一些示例代码来演示如何在Python......