【MySQL】MySQL里程碑

这篇具有很好参考价值的文章主要介绍了【MySQL】MySQL里程碑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【MySQL】MySQL里程碑,mysql,adb,android


个人主页:【😊个人主页】
系列专栏:【❤️MySQL】



时间表

【MySQL】MySQL里程碑,mysql,adb,android文章来源地址https://www.toymoban.com/news/detail-530588.html

从产品特性的角度梳理其发展过程中了解MySQL里程碑事件

  1. 1995年,MySQL 1.0发布,仅供内部使用。
  2. 1996年,MySQL 3.11.1发布,直接跳过了MySQL 2.x版本。
  3. 1999年,MySQL AB公司成立。同年,发布MySQL 3.23,该版本集成了Berkeley DB存储引擎。该引擎由Sleepycat公司开发,支持事务。在集成该引擎的过程中,对源码进行了改造,为后续可插拔式存储引擎架构奠定了基础。
  4. 2000年,ISAM升级为MyISAM存储引擎。同年,MySQL基于GPL协议开放源码。
  5. 2002年,MySQL 4.0发布,集成了后来大名鼎鼎的InnoDB存储引擎。该引擎由Innobase公司开发,支持事务,支持行级锁,适用于OLTP等高并发场景。
  6. 2005年,MySQL 5.0发布,开始支持游标,存储过程,触发器,视图,XA事务等特性。同年,Oracle收购Innobase公司。
  7. 2008年,Sun以10亿美金收购MySQL AB。同年,发布MySQL 5.1,其开始支持定时器(Event scheduler),分区,基于行的复制等特性。
  8. 2009年,Oracle以74亿美金收购Sun公司。
  9. 2010年,MySQL 5.5发布,其包括如下重要特性及更新。
  • InnoDB代替MyISAM成为MySQL默认的存储引擎
  • 多核扩展,能更充分地使用多核CPU。
  • InnoDB的性能提升,包括支持索引的快速创建,表压缩,I/O子系统的性能提升,PURGE操作从主线程中剥离出来,Buffer Pool可拆分为多个Instances。
  • 半同步复制。
  • 引入utf8mb4字符集,可用来存储emoji表情。
  • 引入metadata locks(元数据锁)。
  • 分区表的增强,新增两个分区类型:RANGE COLUMNS和LIST COLUMNS。
  • MySQL企业版引入线程池。
  • 可配置IO读写线程的数量(innodb_read_io_threads,innodb_write_io_threads)。在此之前,其数量为1,且不可配置。
  • 引入innodb_io_capacity选项,用于控制脏页刷新的数量。
  1. 2013年,MySQL 5.6发布,其包括如下重要特性及更新。
  • GTID复制。
  • 无损复制
  • 延迟复制。
  • 基于库级别的并行复制。
  • mysqlbinlog可远程备份binlog。
  • 对TIME, DATETIME和TIMESTAMP进行了重构,可支持小数秒。DATETIME的空间需求也从之前的8个字节减少到5个字节。
  • Online DDL。ALTER操作不再阻塞DML。
  • 可传输表空间(transportable tablespaces)。
  • 统计信息的持久化。避免主从之间或数据库重启后,同一个SQL的执行计划有差异。
  • 全文索引。
  • InnoDB Memcached plugin。
  • EXPLAIN可用来查看DELETE,INSERT,REPLACE,UPDATE等DML操作的执行计划,在此之前,只支持SELECT操作。
  • 分区表的增强,包括最大可用分区数增加至8192,支持分区和非分区表之间的数据交换,操作时显式指定分区。
  • Redo Log总大小的限制从之前的4G扩展至512G。
  • Undo Log可保存在独立表空间中,因其是随机IO,更适合放到SSD中。但仍然不支持空间的自动回收。
  • 可dump和load Buffer pool的状态,避免数据库重启后需要较长的预热时间。
  • InnoDB内部的性能提升,包括拆分kernel mutex,引入独立的刷新线程,可设置多个purge线程
  • 优化器性能提升,引入了ICP,MRR,BKA等特性,针对子查询进行了优化。
    MySQL 5.6是MySQL历史上一个里程碑式的版本,这也是目前生产上应用得最广泛的版本。
  1. 2015年,MySQL 5.7发布,其包括如下重要特性及更新。
  • 组复制
  • InnoDB Cluster
  • 多源复制
  • 增强半同步(AFTER_SYNC)
  • 基于WRITESET的并行复制。
  • 在线开启GTID复制。
  • 在线设置复制过滤规则。
  • 在线修改Buffer pool的大小。
  • 在同一长度编码字节内,修改VARCHAR的大小只需修改表的元数据,无需创建临时表。
  • 可设置NUMA架构的内存分配策略(innodb_numa_interleave)。
  • 透明页压缩(Transparent Page Compression)。
  • UNDO表空间的自动回收。
  • 查询优化器的重构和增强。
  • 可查看当前正在执行的SQL的执行计划(EXPLAIN FOR CONNECTION)。
  • 引入了查询改写插件(Query Rewrite Plugin),可在服务端对查询进行改写。
  • EXPLAIN FORMAT=JSON会显示成本信息,这样可直观的比较两种执行计划的优劣。
  • 引入了虚拟列,类似于Oracle中的函数索引。
  • 新实例不再默认创建test数据库及匿名用户。
  • 引入ALTER USER命令,可用来修改用户密码,密码的过期策略,及锁定用户等。
  • mysql.user表中存储密码的字段从password修改为authentication_string。
  • 表空间加密。
  • 优化了Performance Schema,其内存使用减少。
  • Performance Schema引入了众多instrumentation。常用的有Memory usage instrumentation,可- 用来查看MySQL的内存使用情况,Metadata Locking Instrumentation,可用来查看MDL的持有情况,Stage Progress instrumentation,可用来查看Online DDL的进度。
  • 同一触发事件(INSERT,DELETE,UPDATE),同一触发时间(BEFORE,AFTER),允许创建多个触发器。在此之前,只允许创建一个触发器。
  • InnoDB原生支持分区表,在此之前,是通过ha_partition接口来实现的。
  • 分区表支持可传输表空间特性。
  • 集成了SYS数据库,简化了MySQL的管理及异常问题的定位。
  • 原生支持JSON类型,并引入了众多JSON函数。
  • 引入了新的逻辑备份工具-mysqlpump,支持表级别的多线程备份。
  • 引入了新的客户端工具-mysqlsh,其支持三种语言:JavaScript, Python and SQL。两种API:X DevAPI,AdminAPI,其中,前者可将MySQL作为文档型数据库进行操作,后者用于管理InnoDB Cluster。
  • mysql_install_db被mysqld –initialize代替,用来进行实例的初始化。
  • 原生支持systemd。
  • 引入了super_read_only选项。
  • 可设置SELECT操作的超时时长(max_execution_time)。
  • 可通过SHUTDOWN命令关闭MySQL实例。
  • 引入了innodb_deadlock_detect选项,在高并发场景下,可使用该选项来关闭死锁检测。
  • 引入了Optimizer Hints,可在语句级别控制优化器的行为,如是否开启ICP,MRR等,在此之前,只有Index Hints。
  • GIS的增强,包括使用Boost.Geometry替代之前的GIS算法,InnoDB开始支持空间索引。
  1. 2018年,MySQL 8.0发布,其包括如下重要特性及更新。
  • 引入了原生的,基于InnoDB的数据字典。数据字典表位于mysql库中,对用户不可见,同mysql库的其它系统表一样,保存在数据目录下的mysql.ibd文件中。不再置于mysql目录下。
    Atomic DDL。
  • 重构了INFORMATION_SCHEMA,其中,部分表已重构为基于数据字典的视图,在此之前,其为临时表。
  • PERFORMANCE_SCHEMA查询性能提升,其已内置多个索引。
    不可见索引(Invisible index)
    降序索引。
    直方图。
    公用表表达式(Common table expressions)。
    窗口函数(Window functions)。
    角色(Role)。
    资源组(Resource Groups),可用来控制线程的优先级及其能使用的资源,目前,能被管理的资源只有CPU。
  • 引入了innodb_dedicated_server选项,可基于服务器的内存来动态设置innodb_buffer_pool_size,innodb_log_file_size和innodb_flush_method。
  • 快速加列(ALGORITHM=INSTANT)。
  • JSON字段的部分更新(JSON Partial Updates)。
    自增主键的持久化。
    可持久化全局变量(SET PERSIST)。
    默认字符集由latin1修改为utf8mb4。
    默认开启UNDO表空间,且支持在线调整数量(innodb_undo_tablespaces)。在MySQL 5.7中,默认不开启,若要开启,只能初始化时设置。
    备份锁。
  • Redo Log的优化,包括允许多个用户线程并发写入log buffer,可动态修改innodb_log_buffer_size的大小。
  • 默认的认证插件由mysql_native_password更改为caching_sha2_password。
  • 默认的内存临时表由MEMORY引擎更改为TempTable引擎,相比于前者,后者支持以变长方式存储VARCHAR,VARBINARY等变长字段。从MySQL 8.0.13开始,TempTable引擎支持BLOB字段。
    Grant不再隐式创建用户。
  • SELECT … FOR SHARE和SELECT … FOR UPDATE语句中引入NOWAIT和SKIP LOCKED选项,解决电商场景热点行问题。
  • 正则表达式的增强,新增了4个相关函数,REGEXP_INSTR(),REGEXP_LIKE(),REGEXP_REPLACE(),REGEXP_SUBSTR()。
  • 查询优化器在制定执行计划时,会考虑数据是否在Buffer Pool中。而在此之前,是假设数据都在磁盘中。
  • ha_partition接口从代码层移除,如果要使用分区表,只能使用InnoDB存储引擎。
  • 引入了更多细粒度的权限来替代SUPER权限,现在授予SUPER权限会提示warning。
  • GROUP BY语句不再隐式排序。
  • MySQL 5.7引入的表空间加密特性可对Redo Log和Undo Log进行加密。
  • information_schema中的innodb_locks和innodb_lock_waits表被移除,取而代之的是performance_schema中的data_locks和data_lock_waits表。
  • 引入performance_schema.variables_info表,记录了参数的来源及修改情况。
  • 增加了对于客户端报错信息的统计(performance_schema.events_errors_summary_xxx)。
  • 可统计查询的响应时间分布(call sys.ps_statement_avg_latency_histogram())。
  • 支持直接修改列名(ALTER TABLE … RENAME COLUMN old_name TO new_name)
  • 用户密码可设置重试策略(Reuse Policy)。
  • 移除PASSWORD()函数。这就意味着无法通过"SET PASSWORD … = PASSWORD(‘auth_string’) “命令修改用户密码。
  • 代码层移除Query Cache模块,故Query Cache相关的变量和操作均不再支持。
  • BLOB, TEXT, GEOMETRY和JSON字段允许设置默认值。
  • 可通过RESTART命令重启MySQL实例。
    需要注意的是,上面提到的发布,一般指的是GA版本。

到了这里,关于【MySQL】MySQL里程碑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Transformer模型:人工智能技术发展的里程碑

    在当今人工智能领域,Transformer模型已经成为了一种划时代的技术,它不仅在自然语言处理(NLP)领域取得了突破性的进展,也为其他机器学习任务提供了新的思路和方法。我们今天将深入探讨Transformer模型,包括它的工作原理、对人工智能技术发展的影响,以及它在实际应用

    2024年03月25日
    浏览(89)
  • 3.0里程碑:Topomel Box 现已在微软商店可用

    猿友好! 我的程序 Topomel Box 的第三个版本(3.0)正式上架微软商店。通过微软商店这个统一的分发渠道,Topomel Box 有望与更多国家的用户见面并提供服务。 安装方法很简单,只需要打开微软商店(Microsoft Store),并搜索”topomel”,即可找到它。 搜索到 Topomel Box: 点击

    2024年02月09日
    浏览(99)
  • 3DES算法的起源与演进:保障信息安全的重要里程碑

    3DES算法是DES算法的增强版,由IBM公司在上世纪90年代初提出。DES算法的密钥长度只有56位,随着计算机计算能力的提升,其安全性逐渐受到威胁。为了增强数据的安全性,3DES算法采用了三次DES算法的迭代加密过程,使得密钥长度增加到168位。这一改进大大提高了数据的安全性

    2024年03月09日
    浏览(45)
  • Meta语音达LLaMA级里程碑!开源MMS模型可识别1100+语言

    【新智元导读】Meta的大规模多语言语音 (MMS) 项目将彻底改变语音技术,使用wav2vec 2.0的自监督学习,MMS将语音技术扩展到1100到4000种语言。 在语音方面,Meta又达到了另一个LLaMA级的里程碑。 今天,Meta推出了一个名为MMS的大规模多语言语音项目,它将彻底改变语音技术。

    2024年02月09日
    浏览(69)
  • 甘特图组件DHTMLX Gantt用例 - 如何拆分任务和里程碑项目路线图

    创建一致且引人注意的视觉样式是任何项目管理应用程序的重要要求,这就是为什么我们会在这个系列中继续探索DHTMLX Gantt图库的自定义。在本文中我们将考虑一个新的甘特图定制场景,DHTMLX Gantt组件如何创建一个项目路线图。 DHTMLX Gantt正式版下载 用例 - 带有自定义时间尺

    2024年02月05日
    浏览(45)
  • Nautilus Chain测试网迎阶段性里程碑,模块化区块链拉开新序幕

    Nautilus Chain 是目前行业内少有的真实实践的 Layer3 模块化链,该链曾在几个月前上线了测试网,并接受用户测试交互。该链目前正处于测试网阶段,并即将在不久上线主网,这也将是行业内首个正式上线的模块化区块链底层。 而在上个月,Nautilus Chain 测试网迎来了阶段性

    2024年02月09日
    浏览(49)
  • Covalent Network(CQT)发展新里程碑:SOC 2 数据安全认证通过,进一步加强了其人工智能支持

    Covalent Network(CQT)现已完成并通过了严格的 Service Organization Control(SOC) 2 Type II 的合规性审计,通过由备受行业认可的机构执行,进一步证明了 Covalent Network(CQT)团队坚定不移地致力于遵守最严格的 AICPA 信任服务标准,涵盖了安全性、机密性、可用性和隐私领域。 Covalent

    2024年02月22日
    浏览(43)
  • AI之Sora:Sora(文本指令生成视频的里程碑模型)的简介(能力/安全性/技术细节)、使用方法、案例应用之详细攻略

    AI之Sora:Sora(文本指令生成视频的里程碑模型)的简介(能力/安全性/技术细节)、使用方法、案例应用之详细攻略 导读 :Sora 是OpenAI研发的一个可以 根据文字描述生成视频 的AI模型。它的主要特性、功能以及OpenAI在安全和应用方面的策略的核心要点如下所示: 核心功能 Sora可以

    2024年02月21日
    浏览(51)
  • 云原生数据仓库AnalyticDB Mysql(ADB分析型数据库)-DML语法之新增插入数据详解

    ADB分析型数据库,是阿里云平台上资源,原名叫云原生数据仓库AnalyticDB Mysql,俗称ADB分析型数据库,那么ADB的语法与mysql关系型数据库语法存在一定的差异。 本文为笔记,介绍ADB的DML语法的应用。 1. INSERT INTO INSERT INTO用于向表中插入数据,主键重复时会自动忽略当前写入数据

    2024年02月15日
    浏览(44)
  • Android 连接MySql数据库步骤

    1.首先我们需要导入mysql驱动jar包下载地址:   在android studio的build.gradle中插入 } 2、建立JDBCutils类    分析:jdbc:mysql://192.168.43.215:3306/user\\\",\\\"root\\\",\\\"1234\\\"语句    1、jdbc:mysql://基本格式    2、192.168.43.215你当前连的网的Ipv4地址(可以在cmd命令窗口输入ipconfig命令,找到你连的网(

    2024年02月05日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包