首页 > 数据库 >数据库版本历史的总结-非信创部分

数据库版本历史的总结-非信创部分

时间:2023-12-17 17:35:08浏览次数:64  
标签:PostgreSQL 数据库 SQLServer 发布 版本 MySQL 非信

数据库版本历史的总结-非信创部分


Oracle

Oracle数据库是最悠久的 关系型数据库. 
诞生于美国军方的管理项目

他的第一个版本是Oracle2 
上世纪八九十年代的Oracle8和Oracle9 是非常成功的版本. 

进入21世纪后 Oracle发布了 三个大版本
Oracle10g oracle11g oracle12c (Oracle9 其实也是2001年发布的)

Oracle的大版本每次都会带来巨大的功能/性能提升.
现在变的更加易用了, DBA的很多工作都被数据库自动处理了. 
Oracle10g 2003年
oracle11g 2007年
Oracle12c 2013年
Oracle19c 2019年

MySQL

MySQL是从 的发展比 Oracle和SQLServer都要晚.

1996 年 MySQL 1.0 发布。它的历史可以追溯到1979 年,作者Monty 用BASIC 设计的一个报表工具。
1996 年10 月 3.11.1 发布。MySQL 没有2.x 版本
2000 年 ISAM 升级成MyISAM 引擎。MySQL 开源。
2003 年 MySQL 4.0 发布,集成InnoDB 存储引擎
2005 年 MySQL 5.0 版本发布,提供了视图、存储过程等功能。
2008 年 MySQL AB 公司被Sun公司以十亿美元收购,进入Sun MySQL 时代。
2009 年 Oracle74亿美元收购Sun 公司进入Oracle MySQL 时代。
2010 年 MySQL 5.5 发布,InnoDB 成为默认的存储引擎。
2013 年 MySQL 5.6 发布, 提供了全文搜索索引,增强了优化器
2015 年 MySQL 5.7 发布, 安全性增强,改善了复制性能,支持JSON等.
2018 年 MySQL 8.0 发布, 支持窗口函数,公共表表达式. 对unicode的支持更加完善.
2023 年 MySQL 改进了发布策略, 后续mysql 8.0.x 只修改bug, mysql 8.1 称之为创新版本, 大概 MySQL8.4才成为LTS版本
        大概2024年 MySQL 8.4 会成为LTS版本发布, 然后创新半年改为 MySQL 9.1 创新版

MySQL 在互联网兴起的这些年蓬勃发展, 他很适合CRUD的简单处理
对复杂的关联处理性能一直比较差. 

但是因为培养了非常大的一批忠实的用户, 现在发展的很好
也有很大一笔像是 TiDB OceanBase 等兼容MySQL协议的数据库产品. 

MySQL其实能力与Oracle有着巨大的差距.  其实理论上去IOE 应该也将MySQL一起排除.但是因为种种原因一直没有成型. 

SQLServer

SQLServer 是微软和 Sysbase 合作开发的一套数据库系统. 
微软的第一款产品其实是 BASIC的编译器, 
但是微软发家其实是给IBM的PC兼容机器开发系统, 当时他的OS/2 也是购买别人成型的系统又修改. 

微软的核心产品, Windows,Office,SQLServer 其实都是并购来的, 比尔盖茨不是一个单纯的程序员, 其实更是一个商业天才.

SQLServer 1.0 发布于1989年
后续 微软和SysBASE合作开发了 SQLServer 4.x 的版本
SQLServer 4.x 的版本大体发布于 1993-1994年.
当年微软正在依赖从DEC挖来的大卫卡特勒研发新一代的WindowsNT系统. 

因为微软的Windows first 策略, 微软于SysBASE的矛盾越来越大. 最终两者分道扬镳. 

微软获得了几乎全套的SQLServer 代码权限和销售权限, 主要是用于Windows平台上面的开发
SQLServer 6.x 发布于1995年
SQLServer 7.x 发布于1998年

进入21世纪, 微软改变了自己的命令策略. 
Windows 也发布了 Windows2000. SQLServer 也发布了SQLServer2000的版本
SQLServer2000 发布于2000年,但是内部版本号是 8.x
SQLServer2005 发布于2005年,但是内部版本号是 9.x
SQLServer2008 发布于2008年,但是内部版本号是 10.x
SQLServer2008R2 发布于2010年,但是内部版本号是 10.50
SQLServer2012 发布于2012年,但是内部版本号是 11.x
SQLServer2014 发布于2014年,但是内部版本号是 12.x
SQLServer2016 发布于2016年,但是内部版本号是 13.x
SQLServer2017 发布于2017年,但是内部版本号是 14.x
SQLServer2019 发布于2019年,但是内部版本号是 15.x
SQLServer2022 发布于2022年,但是内部版本号是 16.x

这里需要注意: 
SQLServer 2017的发布非常短, 同年开始支持 Linux系统. 
SQLServer 2019 发布时进一步在linux平台上面支持了 分布式事务.

一般来说 SQLServer 从 2008r2的版本开始有了和Oracle掰一掰手腕的能力
但是当时世界已经不是RDBMS OLTP的天下了. 

PostgreSQL

MySQL号称是世界上最流行的开源数据库
PostgreSQL数据库号称是世界上最先进的数据库. 

PostgreSQL数据库的起源其实是 Ingress 数据库

Ingress 是在1973年由加州伯克利大学开发的一套数据库. 
他引导了很多数据库的发展, 像是informix 还有 sysbase都是直接间接受到Ingress的影响. 

1988年基于Ingress 又发布了 Postgres 
然后逐步发布了 1.0-4.x的版本

1994年基于Postgres 4.2 发布了 PostgreSQL数据库. 
发布版本逐渐快了起来. 

国际国内很多数据库都是基于或者是受到了PostgreSQL数据库的影响: 
亚马逊Redshift、Greenplum、腾讯Tbase、华为GaussDB、瀚高数据库等
人大金仓数据库很多地方也是参照了 PostgreSQL数据库

1. Postgres(1989年)
    关键变化: 支持对象关系数据模型,第一次引入了一种名为Quel的查询语言。
2. Postgres95(1995年)
    关键变化: 添加了SQL语言支持,提高了性能。
3. PostgreSQL 6.0(1997年)
    关键变化: 官方更名为PostgreSQL,支持多线程,首次引入了面向对象特性。
4. PostgreSQL 6.0(1997年)
    关键变化: 支持多线程,第一次引入了面向对象特性。
5. PostgreSQL 6.5(1999年)
    关键变化: 引入了事务、触发器、规则和PL/Tcl存储过程语言支持。
6. PostgreSQL 7.0(2000年)
    关键变化: 提供了Write-Ahead Logging(WAL)和全文索引功能。
7. PostgreSQL 7.1(2001年)
    关键变化: 引入了并发控制机制,改进了查询优化器。
8. PostgreSQL 7.4(2003年)
    关键变化: 新增了表分区支持,增强了统计信息的收集。
9. PostgreSQL 8.0(2005年)
    关键变化: 增加了Windows平台支持,加入了Point-in-time recovery功能。
10. PostgreSQL 8.1(2005年)
    关键变化: 添加了角色管理和表空间支持。
11. PostgreSQL 8.3(2008年)
    关键变化: 增加了Heap-Only Tuples(HOT)和UUID类型支持。
12. PostgreSQL 9.0(2010年)
    关键变化: 增加了流复制和匿名块支持。
13. PostgreSQL 9.6(2016年)
    关键变化: 增加了并行查询支持。
14. PostgreSQL 10(2017年)
    关键变化: 引入了逻辑复制和表分区改进。
15. PostgreSQL 11(2018年)
    关键变化: 改进了并行处理和分区表。
16. PostgreSQL 12(2019年)
    关键变化: 增加了Generated Columns和表达式索引。
17. PostgreSQL 13(2020年)
    关键变化: 提供了增强的索引和分区功能,改进了并行处理效率。
17. PostgreSQL 14(2021年)
17. PostgreSQL 15(2022年)
17. PostgreSQL 15(2023年)

可以看到从PG10开始 数据库进入快车道 一年一个版本的发布. 

PG数据库的发展其实很快.

标签:PostgreSQL,数据库,SQLServer,发布,版本,MySQL,非信
From: https://www.cnblogs.com/jinanxiaolaohu/p/17909411.html

相关文章

  • Windows利用nvm进行node版本控制(node 版本管理工具nvm的安装与使用)
    为什么需要对node进行版本管理?不同项目的node的版本并不相同,不同版本之间的兼容性并不好,所以需要工具(node版本管理工具)进行快速切换node版本。下载与安装(Windows)1.卸载电脑原有node直接去控制面板/win11设置卸载就行2.安装nvmGithub下载地址下载地址里面有两类nv......
  • 非动态数组版本下的筛选
    问题:一对多查找(筛选)的结果需要横向排列,但是表格暂时不支持动态数组。右拉下拉公式解决:{=IFERROR(INDEX(FILTER($E:$E,$D:$D=$G2),COLUMN(A1)),"")}公式中的Filter部分筛选出满总D列中等产于G2对应E列的内容,其结果是多个单元格组成的数组。使用Index提取数组中的内容,第......
  • C++中SQLite数据库操作实例:查询、增加、修改、删除一网打尽
     在C++中使用SQLite数据库需要使用SQLite的C/C++接口。以下是一个简单的示例,演示如何在C++中使用SQLite,并提供了常见的查询、增加、修改和删除功能。为了使用SQLite,你需要下载SQLite的C/C++接口,并链接到你的项目中。首先,确保你已经下载了SQLite的C/C++接口,然后将头文件和库文......
  • 私有云 SDK 集成后数据库加密、解密失败、崩溃
    问题原因私有云IMLib提供了数据库加密功能,并且其中包含了一份sqlite3的源码,所以使用私有云IM库的项目中就不能再引入其它sqlite库了,引用系统的或者手动加入的都可能会造成异常解决方案在Xcode中查看对应TARGETS的BuildPhases->LinkBinaryWithLibraries下是否有......
  • 浅析浏览器数据库IndexedDB:基本概念、操作流程及各对象属性和方法
    一、概述随着浏览器的功能不断增强,越来越多的网站开始考虑,将大量数据储存在客户端,这样可以减少从服务器获取数据,直接从本地获取数据。Cookie的大小不超过4KB,且每次请求都会发送回服务器;LocalStorage在2.5MB到10MB之间(各家浏览器不同),而且不提供搜索功能,不能建......
  • Redis不同版本,内存分配,硬件的性能研究
    Redis不同版本,内存分配,硬件的性能研究前言Konwmore!Domore!Gainmore!骨折之后开始减肥.前段时间跳绳导致膝盖不舒服,现在改骑车和走路.在有限的没人有烦的时间里,还是想能够多学习一些东西.之前了解了isolcpus现在突然想内存分配可能也有性能影响.所以想研......
  • openGauss学习笔记-161 openGauss 数据库运维-备份与恢复-导出数据-使用gs_dump和gs_d
    openGauss学习笔记-161openGauss数据库运维-备份与恢复-导出数据-使用gs_dump和gs_dumpall命令导出数据-导出所有数据库-无权限角色导出数据161.1无权限角色导出数据gs_dump和gs_dumpall通过-U指定执行导出的用户帐户。如果当前使用的帐户不具备导出所要求的权限时,会无法导出......
  • Python学习之十五_不同类型数据库表内容比较
    Python学习只十五_不同类型数据库表内容比较前言最近学习力总结了很多Python相关的内容本次想继续学习一下不同数据库之间的数据比较.这样理论上可以极大的缩减不同数据库测试成本.感谢Python以及之前大拿的各种资料.这个学习还是表简单与单纯.理论上可以通过标准SQL......
  • SQLServer删除数据库特别耗时
    在老库删除数据库的时候,如果选中到了选项"DeletebackupandRestoreHistoryInformationfordatabases"。发现删除操作要耗费很久的时间,甚至好几天。查看一下正在执行的会话信息,看看数据库都在做啥:SELECTs.session_id,r.STATUS,r.blocking_session_id'Blkby'......
  • 2014SQL附加数据库失败,操作系统错误 5:"5(拒绝访问。)"的解决办法
    点击数据库右键附加,出现如下错误  使用sql语句附加出现如下EXECsp_attach_db@dbname='你的数据库名',@filename1='mdf文件路径(包缀名)',@filename2='Ldf文件路径(包缀名)' 解决方法:找到xxx.MDF与xxx_log.LDF文件,右键-属性-安全-在组或用户名处添加AuthenticatedU......