本系列学习笔记主要讲如下几个方面;
本文笔记【六:表操作--线上可以直接删除表吗?】
附加:库操作
【1】创建制定字符集的数据库
需求描述:
在创建DB的时候指定字符集.
操作过程:
1.使用create database语句创建数据库
mysql> create database if not exists test03 default character set = 'utf8';
Query OK, 1 row affected (0.00 sec)
备注:通过default character set = 语句来指定DB的字符集.
2.查看创建的DB的字符集
show create database test;
【2】 select schema_name,default_character_set_name from information_schema.schemata where schema_name = 'test03';
+-------------+----------------------------+
| schema_name | default_character_set_name |
+-------------+----------------------------+
| test03 | utf8 |
+-------------+----------------------------+
1 row in set (0.00 sec) #字符集更改步骤~
六、表操作--线上可以直接删除表吗?
当然不可以啦~
很明显表删除要经过6个步骤;
(6.1)查看表
【1】use database_name; 【2】show tables;
(6.2)检查表是否被访问
【1】show processlist;(如下图就表示有操作在使用该表,此时就就不能操作,没有被访问才可以继续下一步)
(6.3)重命名表
【1】需要绝对的占用表控制权,没有其他操作访问(一般最好是停机情况下,否则线上业务哪有不用表的,除非是备份表)
【2】开始重命名:rename table1 to table1_bak;
为什么要这样?
(1)重命名,不占原本表名称以便可以建立新表。也是为了防止线上业务起来之后再去使用该表,重命名了业务访问就会报错。
(2)作为一个DBA从来都不是把数据给玩死了,而是有备无患,老板和客户没有想到的,我们一定要提前想好,万一后悔了或者需要用到这部分数据了,就可以直接线上构建和使用这部分数据。
(6.4)备份表数据
把表数据备份成sql。
(6.5)删除表
确定该表不需要用到了,就可以删掉它了,避免占资源。就算后续又想要了,上面做了备份,可以用来还原~
(6.6)查看表是否删除成功
(6.7查看表结构)
desc table_name;