zoukankan      html  css  js  c++  java
  • Mysql清空表(truncate)与删除表中数据(delete)的区别

    需求:表中所有数据需要删除(清空),但表已经被插入了几万条数据,如果一条条删除那可真是累人的活。

    解决办法:直接进入mysql直接清空表(truncate)或者删除表中数据(delete)。

    这2种操作模式的区别:

    举个栗子:

    目标对象是表test_table,里面的所有数据均可删除。然后有以下2种方式(进入mysql操作界面后):

    test_table:

     1)truncate table test_table;

    清空后插入:INSERT INTO `test_table` (`daybook_id`, `user_id`) VALUES  (1, 1);

    2)delete from test_table;

    清空后插入:INSERT INTO `test_table` (`daybook_id`, `user_id`) VALUES  (1, 1);

    其中truncate操作中的table可以省略,这两者都是将test_table表中数据清空,见上两图可知也有区别,如下:

    1)truncate是整体删除(速度较快), delete是逐条删除(速度较慢)。
    2)truncate不写服务器log,delete写服务器log,也就是truncate效率比delete高的原因。
    3)truncate不激活trigger(触发器),但是会重置Identity(标识列、自增字段),相当于自增列会被置为初始值,又重新从1开始记录,而不是接着原来的ID数。而delete删除以后,Identity依旧是接着被删除的最近的那一条记录ID加1后进行记录。
    如果只需删除表中的部分记录,只能使用DELETE语句配合where条件。 DELETE FROM test_table WHERE……

  • 相关阅读:
    常用cmd命令总结
    百度地图api的简单应用(二):轻量级路径规划
    百度地图api的简单应用(一):POI检索
    R语言-八皇后问题
    8086基本IO口的仿真
    输入输出与中断
    汇编语言例子
    变量标号
    变量声明
    串操作指令2
  • 原文地址:https://www.cnblogs.com/Tanwheey/p/13602438.html
Copyright © 2011-2022 走看看