这次应小伙伴的要求,来总结下这个 MySQL 主要版本的新特性
那么,我们一起往下看看叭~
我们直接来到官网查看
文章插图
可以看到这里有三个版本 5.6 ,5.7 ,8.0
额 既然 5.5 找不到了,那我们就记住他的主要特点:
- innodb 就是从 5.5 这个版本开始成为 默认的存储引擎
- 引入了真 UTF8 ——> utf8mb4
下面开始 5.6 的探索~
5.6MySQL 5.6 Release Notes
打开上面的链接 ,如下图,这里在介绍这个新特性
文章插图
What Is New in MySQL 5.6
剩下的就不多赘述啦,简单摘录了一些,需要完整资料的小伙伴请移步到官网查看~ (建议去翻一翻 ,毕竟除了新特性,还有 innodb 整体的介绍!)
innodb这里对存储引擎 innodb 做了下面的增强
- 可以创建 全文索引
- 可以修改未压缩表的 InnoDB 页大小设置为 8KB 或 4KB ,默认是 16KB 注意这里只有这三个参数有效(4 ,8 ,16)。 参数: innodb_page_size
- InnoDB 的 redo log 文件可存储的最大值从 4g 升到 512g , 参数: innodb_log_file_size
- 可以设置 innodb 压缩级别 ,级别等级为 0-9 参数: innodb_compression_level
- Innodb 将 flush 刷盘操作从主线程移动到其他线程
- 默认用独立的表空间 ibd
- Undo Log 可以保存在独立的表空间
- 最大分区数量增加到 8192
- 支持显示分区选择 比如: SELECT * FROM t PARTITION (p0, p1) WHERE c < 5
注意存储引擎不是默认的 innodb ,而是 NDB
文章插图
Replication and logging复制和日志记录
- 可以从远程服务器读取 binlog 参数: --read-from-remote-server, -R ; --raw
- 延迟复制 参数: CHANGE MASTER TO
- 就是在这里开始的,我们可以用 EXPLAIN 来查看 DELETE,INSERT,REPLACE,UPDATE等 DML 操作的执行计划 。在这之前,它只支持 SELECT 操作 。
- 优化子查询
- 主机缓存
50
Autosized using max_connections
binlog_checksum
NONE
CRC32
--binlog-row-event-max-size
1024
8192
flush_time
1800 (on windows)
0
innodb_autoextend_increment
8
64
innodb_buffer_pool_instances
1
8 (platform dependent)
innodb_checksum_algorithm
INNODB
CRC32 (changed back to INNODB in MySQL 5.6.7)
innodb_concurrency_tickets
500
5000
innodb_file_per_table
0
1
innodb_old_blocks_time
0
1000
innodb_open_files
300
Autosized using innodb_file_per_table,table_open_cache
innodb_stats_on_metadata
ON
OFF
join_buffer_size
128KB
256KB
max_allowed_packet
1MB
4MB
max_connect_errors
10
100
sync_master_info
0
10000
sync_relay_log
0
10000
sync_relay_log_info
0
【MySQL各大版本新特性一览】10000
5.7innodb
- 增加 DATA_GEOMETRY 类型来支持空间数据类型,以前是用 blob
- innodb 的缓存池 dump 和 load 加强 ,允许按百分比去存储缓存池中的页面 参数: innodb_buffer_pool_dump_pct 默认值是 25
- InnoDB 增加了对全文解析器插件的支持 。
- 支持多线程来刷新缓冲池中的脏页面 内存数据页跟磁盘上数据页内容不一致,将内存页称为脏页
- 由于文件系统 The Fusion-io Non-Volatile Memory (NVM) 在 linux 上提供了原子操作,这导致 innodb 的 doublewrite 变得冗余,所以在该文件系统上,会自动关闭 doublewrite
- innodb_buffer_pool_size 参数是动态的,允许您在不重启服务器的情况下调整缓冲池的大小 。
推荐阅读
- MySQL加锁规则
- mysql数据库的主从同步,实现读写分离
- Ubuntu 20.04更换阿里云源及安装完MySQL修改密码
- 关于MySQL库表名大小写问题
- Mysql索引数据结构有多个选择,为什么一定要是B+树?
- 前端大佬问我MySQL怎么查询最近10分钟的数据?我是这么回答他的
- 一名高级的Javaer,应该了解的 MYSQL 高级知识点
- kali 2021.1后版本root密码修改
- 银行数据库迁移至MySQL,竟被时间字段这玩意耍了……
- GTID模式 mysql集群搭建