跨时代的MySQL8.0新特性解读
作者:jiaxin
出处:
简介
【跨时代的MySQL8.0新特性解读】MySQL 经过20来年发展现在已是世界上最流行的开源数据库 , 8.0 版本作为5.7版本后的跨越大版本 , 除了大表秒级加列外还有其它什么特性了?能在生产上使用吗?MySQL5.7 怎么才能无损升级到MySQL8.0?
MySQL发展历程
文章插图
起源于上个世纪末的MySQL每隔2~3年就会发布一次大版本 , 不断持续的“升级” 。 2008年MySQL被Sun公司以10亿美元收购 , 2009年甲骨文以74亿美元收购Sun公司 , 这是很成功的一次收购与被收购!13年和16年的MySQL5.6、MySQL5.7都是里程碑式的版本 , 有了很多质的飞跃;18年发布了酝酿3年的MySQL8.0 , 又带来了哪些新特性?
MySQL8.0新特性秒级加列
- 只改数据字典表元数据信息
- 5.7和8.0 sbteset1表数据分别为3000w
# mysql8.0.18mysql> alter table sbtest1 add str varchar(200) not null default 'mysql8.0 新加字段';Query OK, 0 rows affected (0.13 sec)Records: 0Duplicates: 0Warnings: 0# mysql5.7.16mysql>alter table sbtest1 add str varchar(200) not null default 'mysql5.7 新加字段';Query OK, 0 rows affected (6 min 8.36 sec)Records: 0Duplicates: 0Warnings: 0
以前表加列操作需要重建表(消耗大量的IO资源和时间) , 8.0加列没有这个步骤 。 秒级加列(不要指定列位置 , 如after str1)让开发人员再也不用等到大半夜列加完后再上线了 , 也让我们dba不用老担心加列失败(生产环境出现加列报主键冲突错误)性能提升
文章插图
# mysql5.7.16mysql> select count(*) from sbtest1;+----------+| count(*) |+----------+| 29991137 |+----------+1 row in set (3 min 12.24 sec)# mysql8.0.18mysql> select count(*) from sbtest1;+----------+| count(*) |+----------+| 30000000 |+----------+1 row in set (45.70 sec)
分别在只更新和只读场景下 , 8.0相比5.7在高并发时性能提升近1倍;求表总数据量8.0响应时间也将近提升5倍文档数据库
- MySQL Document Store , NoSQL + SQL = MySQL
- 多文档事务 , ACID特性
- 支持更新JSON中部分filed
文章插图
文档存储无固定表结构动态schema是很受咱们开发人员喜爱的
SQL增强共用表表达式(CTEs)
- 让SQL语句更加简单、直观
- 窗口函数
- 共用表表达式(CTEs)和窗口函数是报表、OLAP业务一大利器
Alter table t1 alter index idx_str invisible;Alter table t1 alter index idx_str visible;
降序索引(Descending Indexes)索引按倒序存储 , 之前方式都是按顺序存储;使用到具有倒序、升序列的复合索引select * from tx where c1=10 order by c2 desc,c4 asc;
函数索引 (Functional Indexes)Where条件中无法使用到索引成为传说!- 5G发布后,4G变慢,电信高管道出实情,你的4G还能用多久?
- 智能手机时代,电池越来越不经用,怎么充电才能延长电视寿命?
- 倒下的虾米:输给生态,还是败给时代?
- 边缘|边缘计算将取代云计算?5G时代的最强黑马出现了吗?
- 高通骁龙888第六代AI引擎 全新演绎5G时代智慧旗舰
- 苹果AR眼镜又有新进展,最快今年发布
- “记”兴之作 智能手写本推荐——柔宇RoWrite 2
- 学习“时代楷模”精神 信息科技创新助跑5G智慧港口
- 扫码枪将钱扫走,却不需要密码,安全吗?
- 5G是扶不起的“阿斗”?