5.6以后新增了online-DDL功能,但是好像用的人不多,感兴趣可以研究下。目前来说普遍的方案还是采用percona的pt-online-schema-change>
Download Percona Toolkit

我们在电脑或手机各个应用系统所看到的动态变化的信息,都保存在数据库中,根据用户(也就是你、我还有更多的人)的请求或系统的特定算法从数据库抓取特定信息,展现到我们眼前。
这些信息按照一定的结构和规则组织起来,就像我们网购填个收货地址,地址也是按国家、省、市、区、街道、小区层层划分的。
每一类相似信息保存的基本单位叫做数据表。
比如你在某电商平台网购,所有商家会放到一个表,所有买家会放到一个表,地址是一个表,商品分类是一个表,商品又是一个表。为了技术人员方便开发和维护使用,每个表都要取个名称,这就是数据表名。比如,地址表我们可以取名address。
找到mysql的用户名和密码的具体步骤如下:
1、打开mysql.exe和mysqld.exe所在的文件夹,复制路径地址。
3、输入命令mysqld --skip-grant-tables回车,此时就跳过了mysql的用户验证。注意:输入此命令之后命令行就无法操作了,此时可以再打开一个新的命令行。注意:在输入此命令之前先在任务管理器中结束mysqld.exe进程,确保mysql服务器端已结束运行。
5、输入show databases; 可以看到所有数据库说明成功登陆。
6、其中mysql库就是保存用户名的地方。输入use mysql; 选择mysql数据库。
7、show tables查看所有表,会发现有个user表,这里存放的就是用户名,密码,权限等等账户信息。
8、输入select user,host,password from user; 来查看账户信息。至此,便找到了用户名和密码。这样就解决了“找到mysql的用户名和密码”的问题。
在 MySQL 中,可以使用“表名.列名”的方式来引用表的列名。这种方式可以确保引用的列名唯一,并且避免了在复杂查询中出现重名的问题。
例如,如果有两个表都有一个名为“id”的列,可以使用“table1.id”和“table2.id”来引用它们,并且不会产生混淆。同时,使用表名.列名的方式也可以使查询更易于理解和维护,因为可以清楚地知道每个列属于哪个表。