【Mysql】Mysql 各个版本区别

本文对比了MySQL不同版本的主要特性,包括4.1、5.0、5.1、5.5和5.6版本。介绍了各版本新增的功能,如UTF-8支持、存储过程、视图、触发器、半同步复制等,并详细阐述了5.5和5.6版本在性能、管理和可用性方面的改进。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Mysql 各个版本区别:

1、MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。这也是我们通常用的MySQL的版本。根据不同的操作系统平台细分为多个版本
2、MySQL Enterprise Edition 企业版本,需付费,可以试用30天。
3、MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。
4、MySQL Cluster CGE 高级集群版,需付费。

 

二、MySQL 4.15.05.15.55.6各版本的主要区别

1、4.1 增加了子查询的支持,字符集增加UTF-8,GROUP BY语句增加了ROLLUP,mysql.user表采用了更好的加密算法。  

2、5.0 增加了Stored procedures、Views、Cursors、Triggers、XA transactions的支持,增加了INFORATION_SCHEMA系统数据库。  

3、5.1 增加了Event scheduler,Partitioning,Pluggable storage engine API ,Row-based replication、Global级别动态修改general query log和slow query log的支持。  

4、5.5的新特征  

1)默认存储引擎更改为InnoDB  

2)提高性能和可扩展性  

a. 提高了默认线程并发数(innodb_thread_concurrency)  

b. 后台输入/输出线程控制(innodb_read_io_threads、innodb_write_io_threads)  

c. 主线程输入/输出速率控制(innodb_io_capacity)  

d.  操作系统内存分配程序使用控制(innodb_use_sys_malloc)  

e.   适应性散列索引(Hash Index)控制,用户可以关闭适应性散列功能。  

f.   插入缓冲(Insert Buffering)控制,用户可以关闭innodb的插入缓冲功能。  

g.  通过快速加锁算法提高可扩展性,innodb不在使用代理(posix)线程,而是使用原生的独立操作来完成互斥和读写锁定。  

h.  恢复组提交(Restored Group Commit)  

i.   提高恢复性能  

j.  多缓冲池实例  

k.  多个回滚段(Multiple Rollback Segments),之前的innodb版本最大能处理1023个并发处理操作,现在mysql5.5可以处理高达128K的并发事物,  

l.   Linux系统固有的异步输入/输出,mysql5.5数据库系统也提高了linux系统的输入输出请求的并发数。  

m. 扩展变化缓冲:添加了删除缓冲和清除缓冲  

n.  改善了日志系统互斥和单独刷新(Flush)列表互斥  

o.  改善清除程序进度,在mysql5.5中清楚操作线程是独立的线程,并支持并发,可以使用innodb_purge_treads配置。  

p.  改善事务处理中的元数据锁定。例如,事物中一个语句需要锁一个表,会在事物结束时释放这个表,而不是像以前在语句结束时释放表。  

3)提高实用性  

a.  半同步复制(Semi-synchronous Replication)  

b.  复制Heartbeat  

c.  中继日志自动恢复(Automatic Relay Log Recovery)  

d.  根据服务器过滤项复制(Replication Per Server Filtering)  

e.  从服务器复制支持的数据类型转换(Replication Slave Side Data Type Conversions)  

4)提高易管理性和效率  

a.  建立快速索引(Faster Index Creation)  

b.  高效的数据压缩(Efficient Data Compression)   

c.  为大物件和可变长度列提供高效存储   

d.   增加了INFORMATION_SCHEMA表,新的表提供了与InnoDB压缩和事务处理锁定有关的具体信息。  

5)提高可用性  

a.  针对SIGNAL/RESIGNAL的新SQL语法  

b.   新的表/索引分区选项。MySQL5.5将表和索引RANG和LIST分区范围扩展到了非整数列和日期,并增加了在多个列上分区的能力。  

6)改善检测和诊断  

 Mysql5.5引入了一种新的性能架构(performancn_shema,P_S),用于监控mysql监控服务器运行时的性能。

 

 5、5.6的新特征

 1)InnoDB现在可以限制大量表打开的时候内存占用过多的问题(比如这里提到的)(第三方已有补丁)
 2)InnoDB性能加强。如分拆kernel mutex;flush操作从主线程分离;多个perge线程;大内存优化等
 3)InnoDB死锁信息可以记录到 error 日志,方便分析
 4)MySQL5.6支持延时复制,可以让slave跟master之间控制一个时间间隔,方便特殊情况下的数据恢复。
 5)表分区功能增强
 6)MySQL行级复制功能加强,可以降低磁盘、内存、网络等资源开销(只记录能确定行记录的字段即可)
 7)Binlog实现 crash-safe
 8)复制事件采用crc32校验,增强master/slave 复制数据一致性
 9)新增 log_bin_basename (以前variables里面没有binlog位置信息,对数据库的监管很不方便)

 

### MySQL 不同版本的功能变更与日志说明 #### 功能变更概述 MySQL 各个版本之间存在显著的功能改进技术优化。早期版本主要关注基础功能的实现完善,而后期版本则更注重性能优化、安全性兼容性增强。 - **MySQL 5.0** 引入了存储过程视图的支持,这使得复杂查询逻辑可以通过编程方式封装并重用[^1]。 - **MySQL 5.1** 增加了分区表支持,允许开发者通过水平分割数据来提高大规模数据集的操作效率。此外还引入了事件调度器(Event Scheduler),用于定时任务自动化处理[^2]。 - **MySQL 5.5** 开始默认使用 InnoDB 存储引擎替代 MyISAM ,因为前者提供了事务管理外键约束等功能,在高并发场景下表现更好[^3]。 - **MySQL 5.6** 提升了复制子系统的性能,并增加了 GTID (Global Transaction Identifiers) 来简化主从同步配置管理;同时增强了在线 DDL 能力,减少维护期间停机时间的影响[^4]。 - **MySQL 8.0** 是一次重大升级,带来了窗口函数(Window Functions)、JSON字段索引等新特性,并彻底移除了旧版不推荐使用的MyISAM作为默认存储引擎选项之一[^5]。 #### 日志机制的变化分析 随着版本迭代,MySQL 对其内部的日志体系也进行了多次调整: - **Binlog(Binary Log)** - Binlog 记录的是所有更改数据库结构或者内容的数据语句(statement-based replication) 或者实际发生的具体行变化(row-based replication)[^1] 。自 MySQL 5.7 版本起,默认采用混合模式(mixed format),即根据具体情况自动选择 statement 还是 row 形式的 binlog[ ^6 ]. - **Redo Log Undo Log** - Redo log 主要服务于崩溃恢复(crash recovery), 它会在每次提交前被持久化到磁盘上, 遵循WAL(Write Ahead Logging)原则 . 在较新的版本里, 如 MySQL 8.0 , 支持更大的 redo buffer size 及多线程刷盘策略以适应更高负载需求下的高效写入操作 . - Undo logs 则保存回滚段信息以便于未完成事物能够正确撤销 . 新增 undo tablespace 设计让这些临时元数据独立存放从而减轻系统表空间压力 . 综上所述可以看出随着时间推移mysql不断演进完善自身架构设计满足日益增长的应用开发要求. ```sql -- 查看当前服务器开启哪些类型的日志 SHOW VARIABLES LIKE 'log%'; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值