您的位置:首页 > 数据库 > MySQL

MySQL删除某个database的所有数据表 -好东西保存一下

2013-07-07 20:23 337 查看
1,在某些情况下,我要删除MySQL中某个schema下面的所有Tables,或者是要清空所有表中的数据,

这里介绍一种简单安全的方法,利用mysqldump工具,具体处理请见下面:

mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql
-u[USERNAME] -p[PASSWORD] [DATABASE]

1.1 要求删除指定schema的所有表中数据,但是保持表结构。

mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | mysql
-u[USERNAME] -p[PASSWORD] [DATABASE]

原理说明:根据mysqldump的备份参数,包括drop table和建表create table语句,其实是先把database里的所有表drop后,再重建表结构。

1.2 要求删除指定schema的所有表。

mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql
-u[USERNAME] -p[PASSWORD] [DATABASE]

加上grep来提取drop语句,不要create便可。

2 在MySQL中有关drop table的注意事项

2.1 drop table时数据表太大,table_cache
lock is being held so no other queries can start

详见:http://www.mysqlperformanceblog.com/2011/02/03/performance-problem-with-innodb-and-drop-table/

2.2
对于删除大表,利用link来实现快速删除,防止MySQL hung住

详见:http://www.mysqlops.com/2011/05/18/mysql%e5%88%a0%e9%99%a4%e5%a4%a7%e8%a1%a8%e6%9b%b4%e5%bf%ab%e7%9a%84drop-table%e5%8a%9e%e6%b3%95.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  行业数据 数据库