mysql 历次版本号,及每个版本更新的内容

MySQL 自 1995 年首次发布以来,经历了多个版本的迭代,功能不断丰富,性能和稳定性也持续提升。以下是 MySQL 历次主要版本号及对应的更新内容:

  • MySQL 1.0(1995 年):MySQL 的首个版本,基于 SQL 标准,并提供了简化的 SQL 语法,仅供内部使用。
  • MySQL 3.11.1(1996 年):直接跳过了 2.x 版本发布。最开始只提供了 Solaris 下的二进制版本,同年 11 月发布了 Linux 版本。
  • MySQL 3.23(1999 年):集成了 Berkeley DB 存储引擎,该引擎由 Sleepycat 公司开发,支持事务,为后续可插拔式存储引擎架构奠定了基础。同时,此版本提供了全文搜索支持。
  • MySQL 4.0(2002 年):集成了 InnoDB 存储引擎,该引擎支持事务和外键,适用于 OLTP 等高并发场景。引入了查询缓存,同时还支持通过 SSL 进行连接。此外,支持新的语法,比如 UNION 和多表 DELETE 语法。
  • MySQL 4.1(2004 年):引入了更多新的语法,比如子查询和 INSERT ON DUPLICATE KEY UPDATE。开始支持 UTF - 8 字符集,支持新的二进制协议和 prepared 语句。
  • MySQL 5.0(2005 年):出现了一些 “企业级” 特性,如视图、触发器、存储过程和存储函数。老的 ISAM 引擎的代码被彻底移除,同时引入了新的 Federated 等引擎。
  • MySQL 5.1(2008 年):这是 Sun 收购 MySQL AB 以后发布的首个版本。引入了分区、基于行的复制,以及 plugin API(包括可插拔存储引擎的 API)。移除了 BerkeleyDB 引擎,Federated 引擎也被放弃。同时 Oracle 收购的 InnoDB Oy 发布了 InnoDB plugin。此外,还引入了定时器(Event scheduler)。
  • MySQL 5.5(2010 年):InnoDB 代替 MyISAM 成为 MySQL 默认的存储引擎。性能得到提升,包括支持索引的快速创建,表压缩,I/O 子系统的性能提升等。引入 utf8mb4 字符集,可用来存储 emoji 表情。引入 metadata locks(元数据锁)。分区表得到增强,新增 RANGE COLUMNS 和 LIST COLUMNS 两种分区类型。MySQL 企业版引入线程池。
  • MySQL 5.6(2013 年):支持基于库级别的并行复制,mysqlbinlog 可远程备份 binlog。对 TIME、DATETIME 和 TIMESTAMP 进行了重构,可支持小数秒,DATETIME 的空间需求从 8 个字节减少到 5 个字节。ALTER 操作不再阻塞 DML,支持可传输表空间(transportable tablespaces)。分区表进一步增强,最大可用分区数增加至 8192,支持分区和非分区表之间的数据交换等。Redo Log 总大小的限制从 4G 扩展至 512G。优化器性能提升,引入了 ICP,MRR,BKA 等特性,针对子查询进行了优化。
  • MySQL 5.7(2015 年):增强半同步(AFTER_SYNC),基于 WRITESET 的并行复制。在同一长度编码字节内,修改 VARCHAR 的大小只需修改表的元数据,无需创建临时表。支持透明页压缩(Transparent Page Compression),UNDO 表空间可自动回收。可查看当前正在执行的 SQL 的执行计划(EXPLAIN FOR CONNECTION)。引入了查询改写插件(Query Rewrite Plugin)和虚拟列。新实例不再默认创建 test 数据库及匿名用户。引入 ALTER USER 命令,表空间加密。优化了 Performance Schema,内存使用减少。原生支持 JSON 类型,并引入了众多 JSON 函数。引入了新的逻辑备份工具 - mysqlpump 和新的客户端工具 - mysqlsh。
  • MySQL 8.0(2018 年):引入了原生的,基于 InnoDB 的数据字典,重构了 INFORMATION_SCHEMA。PERFORMANCE_SCHEMA 查询性能提升,内置多个索引。支持降序索引、公用表表达式(Common table expressions)和资源组(Resource Groups)。引入了 innodb_dedicated_server 选项,可基于服务器的内存来动态设置 innodb_buffer_pool_size 等参数。JSON 字段支持部分更新。自增主键可持久化,支持可持久化全局变量(SET PERSIST)。默认字符集由 latin1 修改为 utf8mb4,默认开启 UNDO 表空间,且支持在线调整数量。

5 篇资料

你可能感兴趣的:(DB,mysql,mysql,数据库)