mysql 5.5 5.6 5.7 8.0区别
Posted 一品数据邦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 5.5 5.6 5.7 8.0区别相关的知识,希望对你有一定的参考价值。
5.5默认共享表空间
5.5之后用单独的purge thread执行purge操作
5.5出现半同步,性能不佳
5.5之前不支持全文索引
5.5.5以前默认引擎为myisam
5.5.5开始默认引擎为innodb
5.6之后默认独立表空间,共享表空间也存在
5.6之后,page cleaner thread用来执行buffer pool中脏页的flush操作
5.6之后,在参数中推荐使用下划线,避免使用之前的中划线
5.6中binlog_format默认statement
5.6 GTID出现,但不普及
5.6出现group commit
5.6之后支持全文索引
5.6 innodb_log_buffer_size默认大小8M
5.6 innodb_log_file_size默认大小50M
5.6 innodb_log_files_in_group默认值2
innodb_flush_log_at_trx_commit=2时在5.6的变化:
5.6.6之前:每隔一秒将redo log buffer中的数据刷新到磁盘
5.6.6:每隔innodb_flush_log_at_timeout秒将数据刷新到磁盘中去
5.7之后有独立undo表空间
5.7以后支持JSON数据
5.7之前,主从复制需要打开log_slave_updates=on
5.7之后,为避免主从数据不一致,需要在从库设置super_read_only=on
5.7不支持弱密码
5.7主从复制中必须加server_id
5.7中binlog_format默认row
5.7 GTID使用普及
5.7增强半同步的新特性,after commit,after sync
5.7之后支持空间索引
5.7.6中引入通用表空间
5.7.17更完善了,在group commit 上出现了MGR
8.0默认字符集utf8mb4
8.0之后才出现公用表达式CTE
8.0支持降序索引
8.0支持窗口函数
8.0版本已经放弃查询缓存(query_cache)
8.0 innodb_flush_neighbors默认是0
8.0所有元数据使用innodb引擎存储,无frm文件
8.0.20之前doublewrite缓冲区存储区位于innodb系统表空间中
8.0.20开始,doublewrite缓冲区存储区位于doublewrite文件中
以上是关于mysql 5.5 5.6 5.7 8.0区别的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要区别
Atitit.mysql 5.0 5.5 5.6 5.7 新特性 新功能