mysql 8 新特性一 ALGORITHM=INSTANT 实现的快速DDL

mysql 8 新特性一 ALGORITHM=INSTANT 实现的快速DDL,第1张

参考 https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-12.html

在线DDL之 快速增加列(秒级别的),并不会造成业务抖动。该功能自 MySQL 8.0.12 版本引入,是由腾讯游戏DBA团队贡献,我国程序员还是挺厉害的嘛。注意一下,此功能只适用于 InnoDB 表。实际上MySQL 5.7就已支持 Online DDL,虽说大部分 DDL 不影响对表DML *** 作,但是依然会消耗非常多的时间,且占用额外的磁盘空间,并会造成主从延迟,或者影响表的查询速度。有了这个ALGORITHM=INSTANT 就可应对瞬息万变的需求了。。

ALGORITHM=INSTANT 目前对6种ddl有效:

实际试验下,使用 mysql5.7的INPLACE 算法 时间: 52s。

使用 Instant Add Column ,时间:0.39 s。 果然是秒级别添加

当然我们不需要显式指定algorithm=instantmysql会优先使用INSTANT算法来进行ddl的;若显式指定algorithm=instant 同时目标ddl不支持就会报错。如下,DROP COLUMN 时指定则报错

添加或删除virtual 列

添加或删除列默认值

修改 ENUM 定义

修改索引类型

重命名表,好像和5.7的INPLACE算法也没啥时间上的区别。INPLACE的rename table已经足够快了

还有一些特殊情况不能使用ALGORITHM=INSTANT的:

Instant Add Column只能将新字段添加到表的尾巴上,不能添加到中间!

不支持压缩表,即该表行格式不能是 COMPRESSED。

不支持包含全文索引的表;不支持临时表;不支持那些在数据字典表空间中创建的表。这些就不一一验证了。平时 *** 作时要注意下!

统环境:Ubuntu 16.04.4

mysql 版本:5.7.24-0ubuntu0.16.04.1 (Ubuntu)

连接报错:2003 - Can't connect to MySQL server on 'XXX' (61 "Connection refused")

可用该命令检查mysql启动端口:netstat -tulpen

用户root User表中已将将host改成‘%’ 仍然无法被外部连接

找到下图文件/etc/mysql/mysql.conf.d/mysqld.cnf

将bind-address = 127.0.0.1注释

(如何找到bind-address = 127.0.0.1文件,先找到/etc/mysql/my.cnf)

sudo service mysql restart

腾讯QQ使用的是MySQL数据库。

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。

由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。

MySQL这个名字,起源不是很明确。一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQL AB创始人之一的Monty Widenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。

MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。

MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。它的历史也富有传奇性。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8571144.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存