这个版本是2010-12-03发布,是被Oracle收购后的第一个版本
性能提升
1、默认存储引擎InnoDB,之前的默认引擎为MyISAM;
2、行级锁(一致性的非锁定读 MVCC);
3、表与索引存储在表空间、表大小无限制;
4、支持dynamic(primary key缓存内存 避免主键查询引起的IO )与compressed(支持数据及索引压缩)行格式;
5、InnoDB plugin文件格式Barracuda、支持表压缩、节约存储、提供内存命中率、truncate table速度更快;
6、原InnoDB只有一个UndoSegment,最多支持1023的并发;现在有128个Segments,支持128K个并发(同样,解决高并发带来的事务回滚);
7、Innodb_thread_concurrency默认为0,线程并发数无限制,可根据具体应用设置最佳值;
8、Innodb_io_capacity可以动态调整刷新脏页的数量,改善大批量更新时刷新脏页跟不上导致的性能下降问题。Default:200,跟硬盘的IOPS有关;
9、充分利用CPU多核处理能力innodb_read_io_threads阈值:1-64innodb_write_io_threads 阈值:1-64根据数据库的读写比灵活设置,充分发挥多CPU、高性能存储设备的性能,不支持动态加载 ;
10、自适应刷新脏页;
11、热数据存活更久;
12、buffer pool多实例 :innodb_buffer_pool_instances 参数增加。innodb_buffer_pool实例个数,大大降低buffer pool的mutex争抢过热情况;
13、Linux上实现异步IO;
14、重新支持组提交。
稳定性:
1、支持半同步Replication;
2、增加Relay Log自我修复功能;
3、Crash recovery;
4、引入红-黑树做插入排序的中间数据结构,时间复杂度大大降低,减少恢复时间;
5、Thread Pool 分组排队限流。
这个版本是2013-02-05发布
1、默认参数的改变;
2、Back_log 排队队列;
3、支持全文索引;
4、支持online DDL CREATE、ALTER、DROP;
5、可以在建表时指定表空间位置,`create table external (x int unsigned not null primary key)data directory = '/volumes/external1/data';`
6、新增参数innodb_page_size可以设置page大小;
7、整合了memcached API,可以使用API来直接访问innodb表,并非SQL(减少SQL解析、查询优化代价);
8、innodb只读事务,不需要设置TRX_ID字段;
9、减少内部数据结构开销,减少read view;
10、仅仅非只读事务依然需要TRX_ID。
innodb优化:
innodb表空间在线迁移(TransportableTablespaces)。
undo log可独立出系统表空间。
redo log最大可增长到512G。
innodb后台线程独立出来。
优化器改进
这个版本是2015-10-21发布
1、随机root密码 MySQL 5.7 数据库初始化完成后,会自动生成一个 root@localhost 用户,root 用户的密码不为空,而是随机产生一个密码;
2、自定义 test 数据库 MySQL 5.7 默认安装完成后没有 test 数据库。用户可以自行创建 test 数据库并对其进行权限控制;
3、默认 SSL 加密 MySQL 5.7 采用了更加简单的 SSL 安全访问机制,默认连接使用 SSL 的加密方式;
4、密码过期策略 MySQL 5.7 支持用户设置密码过期策略,要求用户在一定时间过后必须修改密码;
5、用户锁 MySQL 5.7 为管理员提供了暂时禁用某个用户的功能,使被锁定的用户无法访问和使用数据库;
6、全面支持JSON 随着非结构化数据存储需求的持续增长,各种非结构化数据存储的数据库应运而生(如 MongoDB),各大关系型数据库也不甘示弱,纷纷提供对 JSON 的支持,以应对非结构化数据库的挑战; MySQL 5.7 也提供了对 JSON 的支持,在服务器端提供了一组便于操作 JSON 的函数。存储的方法是将 JSON 编码成 BLOB 后再由存储引擎进行处理。这样,MySQL 就同时拥有了关系型数据库和非关系型数据库的优点,并且可以提供完整的事务支持;
7、支持两类生成列(generated column) 生成列是通过数据库中的其他列计算得到的一列。当为生成列创建索引时,可以便捷地加快查询速度。MySQL 5.7 支持虚拟生成列和存储生成列。虚拟生成列仅将数据保存在表的元数据中,作为缺省的生成列类型;存储生成列则是将数据永久保存在磁盘上,需要更多的磁盘空间;
8、引入系统库(sys schema) 系统库中包含一系列视图、函数和存储过程,通过多线程、多进程、组合事务提交和基于行的优化方式将复制功能提高 5 倍以上,用户向外扩充其跨商品系统的工作负载时,得以大幅提升复制的效能和效率。
这个版本是2022-04-26发布
1、默认开启binlog,默认binlog_format为row;
2、使用JSON表函数,您可以使用JSON数据的SQL机制;
3、GIS地理支持。空间参考系统(SRS),以及SRS感知空间数据类型,空间索引和空间功能;
4、可靠性 DDL语句已变得原子性和崩溃安全,元数据存储在单个事务数据字典中;
5、由InnoDB提供支持!可观察性性能架构,信息架构,配置变量和错误记录的显着增强;
6、可管理性远程管理,撤消表空间管理和新的即时DDL;
7、安全 OpenSSL改进,新的默认身份验证,SQL角色,分解超级特权,密码强度等等;
8、性能 InnoDB在读/写工作负载,IO绑定工作负载和高争用“热点”工作负载方面明显更好;
9、增加了资源组功能,通过将用户线程映射到CPU,为用户提供一个选项,以针对特定硬件上的特定工作负载进行优化 。