mysql释放空间?
1、drop table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM ;
2、truncate table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM 。truncate table其实有点类似于drop table 然后creat,只不过这个create table 的过程做了优化,比如表结构文件之前已经有了等等。所以速度上应该是接近drop table的速度;
3、delete from table_name删除表的全部数据,对于MyISAM 会立刻释放磁盘空间 (应该是做了特别处理,也比较合理),InnoDB 不会释放磁盘空间;
4、对于delete from table_name where xxx带条件的删除, 不管是innodb还是MyISAM都不会释放磁盘空间;
5、delete操作以后使用optimize table table_name 会立刻释放磁盘空间。不管是innodb还是myisam 。所以要想达到释放磁盘空间的目的,delete以后执行optimize table 操作。
6、delete from表以后虽然未释放磁盘空间,但是下次插入数据的时候,仍然可以使用这部分空间。
在sql数据库中怎么判断某张表是否已经存在了?
应为:if exists(select*from
sys.objects
where name ='bbsUsers' )drop table bbsUsersbbsUsers 是要查询的表 sysobjects 是系统表数据库误删可以恢复吗?如何操作?
理论上,只要有数据库备份和对应的数据库在线日志,都可以恢复到任何时间点。
以mysql数据库为例:
误删除分为以下几种情况
1.业务数据误删除,例如delete,tuncate掉不该删除的业务数据
2.业务表误删除,例如drop table,将业务删除
3.数据库文件误删除,例如rm掉数据库文件,数据库binlog日志等
针对语句1和2的情况,做了延迟库的架构方案,可以直接从延迟中将数据导出,再导入就可以恢复
第三种情况就稍微复杂一些,rm掉关键文件,会导致数据库直接崩溃,那就需要对应的数据库备份和对应的binlog日志进行恢复,如做mysql的主主复制高可用,当监控软件识别到当前用的主库已经不可用,则会自动将业务切换到备用数据库。
你备份了吗?备份了是可以的,因为云帮手是可以直接将备份同步到云盘的,你直接进入云盘——数据库备份就可以进行恢复了;如果怕自己忘记备份,也可以在系统管理——计划任务——添加计划任务,时间可以具体到每月每天每小时每分钟,设置好后就可以自动备份了,这样就算误删也不怕了。
mysql语句怎么转换为oracle语句?
1
2
3
4
5
6
7
DROP TABLE admin ;
CREATE TABLE admin (
username varchar(20) NOT NULL,
password varchar(20),
PRIMARY KEY(username)
) ;
INSERT INTO admin VALUES ('a', 'a');

