1、先删除外键表中的数据,再删除当前数据
举例:
drop table if exists t1
drop table if exists t2
create table t1(id int primary key , s1 float)
create table t2(id int , id1 int ,s1 float,foreign key(id1) references t1(id) )
insert into t1 values(1,20)
insert into t1 values(2,30)
insert into t2 values(1,1,50)
--如果你直接删除t1的数据,则报错
delete t1
692: Key value for constraint (root.u143_565) is still being referenced.
Error in line 1
Near character position 8
--需要先删除t2表中的数据,才能删除t1表中的数据
delete t2
delete t1
2、可以通过外键设置级联删除
--在设置外键时,设置级联删除
drop table t2
drop table t1
create table t1(id int primary key , s1 float)
create table t2(id int , id1 int ,s1 float,foreign key(id1) references t1(id) on delete cascade)
insert into t1 values(1,20)
insert into t1 values(2,30)
insert into t2 values(1,1,50)
--此时删除t1的数据,则删除t1及t2中数据
>delete t1
2 row(s) deleted.
>select * from t2
idid1s1
No rows found.
数据库运行过程中会产生大量运行日志,占用大量的磁盘空间,建议清理过期日志文件,只保留一个月的日志。具体步骤为:1)以管理员用户gbase登录数据库主节点;
2)清理日志:将超过1个月的日志备份到其他磁盘-进入日志存放目录-进入相应的子目录,使用如下方式删除1个月之前产生的日志。
1. 通过sysbench初始化1张2000万行的表2. 通过sysbench执行OLTP场景(read write)对数据库加压,采集间隔为1秒;
3. 对sysbench的sbtest1表在线添加新列,观察是否执行成功,以及对tps,qps影响,记录执行alter语句时间:
dbaccess test -
>alter table sbtest1 add (new_column int)
4. 对sysbench的sbtest1表在线删除新列,观察是否执行成功,以及对tps,qps影响,记录执行alter语句时间:
dbaccess test -
>alter table sbtest1 drop new_column
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)