1、方法1 delete
改方法删除数据的时候,并不是都删除了,而是只是一个标实,当数据量很大的时候,用这个删除,你会发现内存并没有发生减少的变化,如果想要真正的清理空间,还得执行OPTIMUIZE TANLE t_image
自增也不会变,再下一次输入数据的时候,还是会从上一次结尾处加;
//方法1 delete from 删除指定的字段 但是有时候安全验证不允许,where id>=0
//删除并不是都删掉了,只是做一个标实。事物,是可以回头的,
//数据量比较大的时候,是很慢的 所以分表
//自增的时候还是从上一次删除的时候接上的
//如果想要真正的清理空间,还得再写 OPTIMIZE TABLE t_image 可以定期做
sql = "delete from `t_image`";
re = mysql_real_query(&mysql, sql.c_str(), strlen(sql.c_str()));
sql = "OPTIMIZE TABLE `t_image`";
re = mysql_real_query(&mysql, sql.c_str(), strlen(sql.c_str()));
if (re != 0)
{
cout << "delete to create,error:" << mysql_error(&mysql) << endl;
}
else
{
printf("delete successfully\n");
}
2、方法2 truncate
该方法再初始化的时候会用到,是将整个表进行删除,自增索引重新从1开始
空间也清理掉了
//方法2 truncate 初始化的时候会用 将整个表都清理掉,并且自增索引都重新开始
//自增会重新开始,也会清理掉空间,但是delete不会
sql = "truncate `t_image`";
re = mysql_real_query(&mysql, sql.c_str(), strlen(sql.c_str()));
if (re != 0)
{
cout << "truncate to create,error:" << mysql_error(&mysql) << endl;
}
else
{
printf("truncate successfully\n");
}
3、方法3 drop
慎用,会将整个表都删除了,得重新创建表格
//方法3 将整个表都删掉
//也会清理掉空间
sql = "drop table t_image";
re = mysql_real_query(&mysql, sql.c_str(), strlen(sql.c_str()));
if (re != 0)
{
cout << "drop to create,error:" << mysql_error(&mysql) << endl;
}
else
{
printf("drop successfully\n");
}