跨时代的MySQL8.0新特性解读( 二 )
select * from tx where year(date_)=2020;
默认字符集为utf8mb4
- 更好的存储补充字符 , 如emojis表情符号
- 可变长度编码字符性能提升
- SKIP LOCKED
select * from tx where c1=12 for update skip locked;Empty set (0.00 sec)
- NOWAIT
select * from tx where c1=12 for update nowait;ERROR 3572 (HY000): Statement aborted because lock(s) could not be acquired immediately and NOWAIT is set.
SKIP LOCKED和NOWAIT对热行(Hot Rows)场景如抢红包、秒杀等有益资源组(Resource Groups)
- 线程赋给不同的资源组
- 资源组和不同的内存、IO、CPU(现仅支持)进行关联
文章插图
官方版多租户资源隔离成为了可能 , 更好提升在不同读写业务场景下的性能
新的数据字典
- 基于innodb的库表元数据信息
- 增强了MySQL crash-safe能力
- 原子DDL( Atomic DDLs )
文章插图
以前版本MySQL数据字典存放在多个地方 , 一机器多实例时存在大量文件描述符性能消耗 , 8.0版本都存放在事务性InnoDB表 , MySQL异常挂掉后也不会再出现表损坏情况;DDL操作失败也不会再留下占空间的“临时文件”
MGR增强
- 金融级别99.999%官方高可用方案
- MGR是业务多活(应用多活+数据库多活)的终极方案
- 多个MySQL组成一个group , 数据写group
- 线上10套多主8.0 MGR集群
group剔除异常节点等待时间#sysvar_group_replication_member_expel_timeout
节点自行脱离group等待时间#sysvar_group_replication_unreachable_majority_timeout
文章插图
线上8.0.18 MGR已稳定运行大半年 , MGR的增强大大提升了在网络异常(机房级故障)下的健壮、稳定性;之前多次的机房故障演练8.0 MGR也都符合预期 , 网络恢复后MGR节点自动加入group 恢复读写
安全增强
SQL RolesSQL角色Atomic ACL Statements原子ACL语句Dynamic Privileges动态特权Protection Against Brute Force Attacks防止暴力攻击REDO Query OK, 0 rows affected (0.00 sec)mysql> mysql> set persist innodb_buffer_pool_size=268435456*2;Query OK, 0 rows affected (0.00 sec)
其它特性- 优化器直方图
- 自增主键持久化
- 移除Query Cache
- GIS增强
- 备份锁
- group by 不再隐式排序
- redo_log优化、多线程并发写log buffer
文章插图
线上8.0.18 MGR大多是从5.7.22 MySQL原地升级;依次升级从库 , online switch老主库至新从库(30s内完成) , 再升级老主库
展望未来
文章插图
每个产品、版本都有一定生命周期 , 数据库也不例外 , MySQL5.6 甲骨文官方支持到明年;也不是为了用新版本而“新版本” , 主要是为了提升性能 , 享受开源带来的红利 , 更好地支持业务
- 5G发布后,4G变慢,电信高管道出实情,你的4G还能用多久?
- 智能手机时代,电池越来越不经用,怎么充电才能延长电视寿命?
- 倒下的虾米:输给生态,还是败给时代?
- 边缘|边缘计算将取代云计算?5G时代的最强黑马出现了吗?
- 高通骁龙888第六代AI引擎 全新演绎5G时代智慧旗舰
- 苹果AR眼镜又有新进展,最快今年发布
- “记”兴之作 智能手写本推荐——柔宇RoWrite 2
- 学习“时代楷模”精神 信息科技创新助跑5G智慧港口
- 扫码枪将钱扫走,却不需要密码,安全吗?
- 5G是扶不起的“阿斗”?