周五MySQL开发更新了哪些内容?看这里!
MySQL在数据库领域拥有相当大的市场份额。作为业内标准之一,它一直被许多企业和开发者所使用和推崇。MySQL开发团队不断推出新版本和更新,以保持其核心技术和竞争力。最近,MySQL在2021年9月10日发布了其最新的更新版本MySQL 8.0.27,它带来了一系列新的特性和改进。
那么,在这次更新中MySQL开发团队都做了哪些改进呢?下面我们将详细介绍MySQL 8.0.27更新的内容:
1. 推出新的InnoDB ALTER TABLE语言功能
在之前的版本中,ALTER TABLE语句在修改InnoDB表时需要对整个表进行锁定,会对系统性能带来一些影响。而在这个版本中,MySQL新的InnoDB ALTER TABLE语言功能可以允许表创建中途修改,并降低对系统的锁定时间,大大提高了InnoDB表的操作效率。
2. 增加了新的AES CTR模式
MySQL 8.0.27版本新增了一个用于数据和通信加密的AES (Advanced Encryption Standard) CTR模式。它提供了更加安全和有效的数据加密和解密方式,保障了数据的安全。
3. 改进了Spatial校验功能
MySQL 8.0.27版本改进了Spatial校验功能,增加了对贝塞尔曲线的支持。这使得新版MySQL可以更好地支持具有复杂地理形状的区域性数据存储和校验。
4. JSON函数支持新增If-Exists选项
MySQL 8.0.27版本新增了If-Exists选项,在对某些JSON函数进行操作时,会先检查数据集是否存在,若不存在则返回NULL而不是返回错误信息。这种改进增强了对JSON数据的相关操作。
5. 执行计划支持新增FeatureFlags选项
MySQL 8.0.27版本新增了FeatureFlags选项,允许用户在执行计划的过程中根据需要设置不同的标志位,从而在使用执行计划时更灵活地控制MySQL的性能。
针对以上更新,下面我们展示一些MySQL 8.0.27版本的代码演示,以更直观地了解这个版本的新特性。
1. InnoDB表格中途修改
SQL语句:
ALTER TABLE t1 ADD COLUMN c1 INT, ALGORITHM=INPLACE, LOCK=NONE;
2. AES CTR 模式加密
SQL语句:
SELECT AES_ENCRYPT(‘password123’, ‘encryptionKey’, ‘CTR’);
3. Spatial校验的贝塞尔曲线
SQL语句:
SELECT ST_Equals(‘LINESTRING(0 0,3 3)’, ST_Bezier(‘LINESTRING(0 0,1 1,2 2,3 3)’));
4. JSON函数If-Exists选项
SQL语句:
SELECT JSON_EXTRACT(JSON_OBJECT(‘a’, 1), ‘$.a’, IF(EXISTS(JSON_OBJECT(‘a’, 1)), ‘1’, ‘0’)), JSON_EXTRACT(JSON_OBJECT(‘a’, 1), ‘$.b’, IF(EXISTS(JSON_OBJECT(‘a’, 1)), ‘1’, ‘0’));
5. FeatureFlags选项的执行计划
SQL语句:
SET optimizer_switch=’block_nested_loop=off, mrr_cost_based=on, mrr=on, ftb=off’;
EXPLN SELECT * FROM t1 JOIN t2 ON col1=col2 WHERE col3=0 AND col1
从以上MySQL 8.0.27版本的更新内容和相关代码演示中,我们可以看出这个版本对InnoDB表的修改、数据加密、空间数据存储和校验等方面都做了很多有益的改进。这些改进大大提高了MySQL的性能和数据安全性,也使得它在大数据量存储和处理等领域更具竞争力。因此,如果你是MySQL的用户或者开发者,不妨升级你的MySQL版本,体验最新的功能和特性。