一、Mysql5.7的新增功能
1、支持JSON,是一种可以替代XML的存储信息格式,从5.7.8版本开始支持
2、改进InnoDB的可扩展性和临时表的性能,从而实现更快的网络和大数据加载等操作
3、改进赋值包括多源复制、多从线程增强、在线GTIDs和增强的半同步复制
4、增加了许多新的监控功能,以减少空间和过载,使用新的SYS模式显著提高易用性
5、以安全第一为宗旨,提供了很多新的功能,从而保证数据库的安全
6、重写了大部分解释器、优化器和成本模型,提高了可维护性、可扩展性和性能
6、全新功能,包括InnoDB空间索引,使用Boost.Geometry,同时提高完整性和标准符合性
二、数据库的存储引擎
1、存储引擎 - 是数据库底层软件组织,DBMS使用数据引擎创建、查询、更新、删除数据操作,不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,还包括处理事务安全镖的引擎,可以对每一个表使用不同的存储引擎
#查看支持的引擎
show engines
2、InnoDB存储引擎(默认)- 支持行锁定、外键
提供了具有提交、回滚、崩溃恢复的事务安全存储引擎
为处理巨大数据量的最大性能设计,
为在主内存中缓存数据和索引而维持它自己的缓冲池,将表和索引存储在一个逻辑表空间中,表空间可包含数个文件
支持外键完整性约束 - 每张表按主键顺序存放,如没有指定主键,则会为每一行生成一个6B的Rowid作为主键
将在MySql目录下创建一个名为ibdata1的10MB大小的自动扩展数据文件以及两个名为ib_logfile0、ib_logfile1的日志文件
一般应用于高性能的大型数据库站点上
3、MyISAM存储引擎
具有较高的插入、查询速度,但不支持事务
每个字符列可以有不同的字符集
支持全文索引
使用MyISAM引擎创建数据库时,将产生3个文件,frm文件存储表定义,数据文件的扩展名为myd,索引文件的扩展名为myi
一般应用于Web、数据存储
4、MEMORY存储引擎
将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问
在所有客户端之间共享(类似其他非TEMPORARY表)
可以在一个MEMORY表中有非唯一键,支持哈希索引
当不需要MEMORY表时,需释放被MEMORY占用的额内存,执行DELETE FROM 或TRUNCATE TABLE或DROP TABLE
一般用于存储临时数据
5、Archive存储引擎
如果只有Insert和Select操作,可选择Archive,支持高并发的操作,但本身不是事务安全的,适合归档类数据存储,如日志