zoukankan      html  css  js  c++  java
  • MySQL中清空表和删减表的区别

    1. 在Navicat操作清空表中数据时,发现清空表(delete table)删减表(truncate table)两个选项,这两个选项都是实现清空MySQL表中的数据,那么两者的区别是什么?

    2. 区别:

    (1)SQL不同:

    清空表:DELETE FROM table_name;

    删减表:TRUNCATE [TABLE] table_name;

    (2)返回值不同:

    清空操作,返回删除的行数。

    删减操作,返回0。

    (3)自增字段处理

    清空:不会将自增字段置为1,继续保留最大值。

    删减:将字段置为1。

    (4)效率比较

    清空:扫描全盘,表数据越多删减越慢。

    删减:不扫描全盘,效率高,机会与表数据无关。(相当于重新创建表,只保留了表结构,然后删除掉原有表,效率非常高)

    (5)日志记录

    清空:会记录日志,可恢复。

    删减:不记录日志,不可回复。谨慎使用!

    (6)触发器影响

    清空:相当于执行delete删除语句,会激活触发器。

    删减:直接对表操作,不会激活触发器。

    3. 总结

    • 清空操作:DELETE FROM table_name ; 不会重置自增字段,效率低,有日志记录,会激活触发器。 对于数据量大的表,执行的比较慢。
    • 删减操作:TRUNCATE [TABLE] table_name ; 会重置自增字段,效率高,无日志记录,不会激活触发器。 请谨慎使用,一旦执行,数据无法恢复。

    来自:https://www.cnblogs.com/better-farther-world2099/articles/14657528.html

  • 相关阅读:
    25、DataReaderWriter
    javascript 事件(基础)0831
    html 表单下拉列表框
    css
    getElementById的三个用法
    javascript原型对象prototype
    JS String类型
    javascript闭包及作用域
    JavaScript匿名函数
    Javascript表单(text,radio,checkbox等)验证大全0830
  • 原文地址:https://www.cnblogs.com/keye/p/14942080.html
Copyright © 2011-2022 走看看