mysql新特性
5.7新特性
- sys库
- document store
- X protocol
- json支持
- 空间数据
- 虚拟列
- query rewrite plugin
- 表空间传输
- innodb undo表空间
- 表空间管理及加密
- 在线ddl
- 多源复制
- 增强半同步
- group replication
- 基于trace阅读执行计划
- 优化器
8.0新特性
- 消除了buffer pool mutex
- 数据字典全部采用innodb引擎存储,支持DDL原子性,crash safe,元数据管理更完善
- 快速在线加新列
- 并行redo log,并提升redo log的I/O性能,可在线调整redo log buffer
- 新增倒序索引,不可见索引
- 优化器增强,增强CBO特性
- 支持会话级别set var 动态调整部分参数
- 重构SQL分析器
- 行锁增加SKIP LOCKED 和 NOWAIT 选项
- 新增事务CATS特性
- 在线修改undo log 数量
- 直方图
- 认证插件由sha256改成caching_sha2
- 新增role功能
- 自增列持久化
- 增强json
- 增加redo/undo log加密
- 增加resource group功能
- 新增更多数据字典
- 默认字符集改成utf8mb4
- 通用表达式CTE
- 窗口函数
- restart 功能
13期问题
1.mysql有哪些索引,有什么注意的
存储上分类:btree,hash,r-tree
功能上分类:主键,唯一索引,普通索引,联合索引,全文索引
注意事项:
1.innodb按主键顺序存储
2.innodb普通索引包含主键
3.主键,唯一索引等值查询上可以节约一些IO开销
4.普通索引选择区别度比较大的列创建索引
5.hash索引只能使用到等值查询
6.索引不支持‘%like%
7.索引是左值优先生效
2.innodb有哪些锁,如何排查?
innodb锁:recored lock,gap lock,next-key lock,inc lock
排查:show engine innodb status ,information_schmea.innodb_trx
3.对性能影响较大的参数有哪些?
innodb_buffer_pool_size
innodb_flush_log_trx_commit
sync_binlog
group_commit
innodb_thread_ (8.0要取消)
innodb_data_file_path
innodb_log_file_size
innodb_log_files_in_group
innodb_file_per_table
4.数据库慢如何排查?
1.操作系统层,资源检查,判断 cpu io memory
2.show processlist,innodb_trx 表查看执行语句情况,确定top sql ,分析锁,执行计划等
5.复制延迟高,如何排查?
1.确定是io_thread 还是 sql_thread 延迟
2.io_thread延迟检查网络
3.sql_thread延迟,查看是否有大事务,主库表是否有主键,从库是否开启并行复制