欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL刪除表操作實現(xiàn)(delete、truncate、drop的區(qū)別)

 更新時間:2019年12月02日 14:43:54   作者:z_ryan  
這篇文章主要介紹了MySQL刪除表操作實現(xiàn)(delete、truncate、drop的區(qū)別),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

本文主要講mysql中三種刪除表的操作,delete語句、truncate語句以及drop語句的區(qū)別:

簡介

delete

1、刪除整張表的數(shù)據(jù):

delete from table_name;

2、刪除部分數(shù)據(jù),添加where子句:

delete from table_name where...;

3、說明

 ?。保?、屬于DML語言,每次刪除一行,都在事務日志中為所刪除的每行記錄一項。產(chǎn)生rollback,事務提交之后才生效;如果有相應的 trigger,執(zhí)行的時候?qū)⒈挥|發(fā),如果刪除大數(shù)據(jù)量的表速度會很慢。
  2)、刪除表中數(shù)據(jù)而不刪除表的結(jié)構(gòu)(定義),同時也不釋放空間。

truncate

1、只能操作表,將表中數(shù)據(jù)全部刪除,在功能上和不帶where子句的delete語句相同:

truncate table table_name;

2、說明

 ?。?、默認情況下,truncate通過釋放存儲表數(shù)據(jù)所用的數(shù)據(jù)頁來刪除數(shù)據(jù),并且只在事務日志中記錄頁的釋放。所以使用的系統(tǒng)和事務日志資源少,可以使用reuse storage; truncate會將高水線復位(回到最開始).
  2 )、 truncate是DDL語言, 操作立即生效,自動提交,原數(shù)據(jù)不放到rollback segment中,不能回滾. 操作不觸發(fā)trigger.
  3 )、刪除內(nèi)容、釋放空間但不刪除表的結(jié)構(gòu)(定義)。

drop

1、drop語句將刪除表的結(jié)構(gòu),以及被依賴的約束(constrain),觸發(fā)器(trigger),索引(index);

drop table table_name;

2、說明
  1)、刪除之后,依賴于該表的存儲過程/函數(shù)將保留,但是變?yōu)閕nvalid狀態(tài).
  2)、drop也屬于DDL語言,立即執(zhí)行,執(zhí)行速度最快
  3)、刪除內(nèi)容和定義,釋放空間。

區(qū)別

1、表和索引所占空間:
  當表被TRUNCATE 后,這個表和索引所占用的空間會恢復到初始大??;
  DELETE操作不會減少表或索引所占用的空間;
  DROP語句將表所占用的空間全釋放掉。

2、應用范圍:
  TRUNCATE 只能對table;
  DELETE可以是table和view。

3、執(zhí)行速度: drop > truncate > delete

4、delete from刪空表后,會保留一個空的頁,truncate在表中不會留有任何頁。

5、DELETE語句執(zhí)行刪除的過程是每次從表中刪除一行,并且同時將該行的刪除操作作為事務記錄在日志中保存以便進行進行回滾操作。

TRUNCATE TABLE 則一次性地從表中刪除所有的數(shù)據(jù)并不把單獨的刪除操作記錄記入日志保存,刪除行是不能恢復的。并且在刪除的過程中不會激活與表有關的刪除觸發(fā)器。執(zhí)行速度快。

6、當使用行鎖執(zhí)行 DELETE 語句時,將鎖定表中各行以便刪除。truncate始終鎖定表和頁,而不是鎖定各行。

7、如果有identity產(chǎn)生的自增id列,delete from后仍然從上次的數(shù)開始增加,即種子不變;

使用truncate刪除之后,種子會恢復到初始值。

總結(jié)

1、delete 語句可以使用where子句實現(xiàn)部分刪除,而truncate不可以,會將表中的整個數(shù)據(jù)全部刪除,使用時,可以按需求選擇;
2、如果想從表中刪除所有的數(shù)據(jù),不要使用delete,可以使用truncate語句,因為這樣執(zhí)行速度更快。truncate語句實際是刪除原來的表然后重新建立一個新表;
3、在沒有備份情況下,謹慎使用 drop 與 truncate。要刪除表結(jié)構(gòu)使用drop;
4、對于由 FOREIGN KEY 約束引用的表,不能使用 TRUNCATE TABLE,而應使用不帶 WHERE 子句的 DELETE 語句。由于 TRUNCATE TABLE 不記錄在日志中,所以它不能激活觸發(fā)器。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • mysql 8.0.11安裝配置方法圖文教程

    mysql 8.0.11安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了mysql 8.0.11安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • mysql?8.0.27?安裝配置方法圖文教程(Windows64位)

    mysql?8.0.27?安裝配置方法圖文教程(Windows64位)

    這篇文章主要為大家詳細介紹了mysql?8.0.27?下載、安裝與配置圖文教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • MySQL 有關MHA搭建與切換的幾個錯誤log匯總

    MySQL 有關MHA搭建與切換的幾個錯誤log匯總

    這篇文章主要介紹了MySQL 有關MHA搭建與切換的幾個錯誤log匯總,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2020-12-12
  • 一文了解Mysql分區(qū)的使用

    一文了解Mysql分區(qū)的使用

    分區(qū)允許根據(jù)可以設置為任意大小的規(guī)則,跨文件系統(tǒng)分配單個表的多個部分,本文主要介紹了Mysql分區(qū)的使用,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • Mysql主從數(shù)據(jù)庫(Master/Slave)同步配置與常見錯誤

    Mysql主從數(shù)據(jù)庫(Master/Slave)同步配置與常見錯誤

    今天小編就為大家分享一篇關于Mysql主從數(shù)據(jù)庫(Master/Slave)同步配置與常見錯誤,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 一條 SQL 語句執(zhí)行過程

    一條 SQL 語句執(zhí)行過程

    這篇文章主要介紹了一條 SQL 語句執(zhí)行過程的相關資料,沒人詳細具有一的的參考價值,需要的小伙伴可以參考一下,希望對你的學習和工作有所幫助
    2022-03-03
  • Mybatis中的動態(tài)SQL語句解析

    Mybatis中的動態(tài)SQL語句解析

    這篇文章主要介紹了Mybatis中的動態(tài)SQL語句解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Linux下MySQL 5.6.27 安裝教程

    Linux下MySQL 5.6.27 安裝教程

    這篇文章主要為大家詳細介紹了Linux下MySQL 5.6.27 安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 清理MySQL Binlog二進制日志的三種方式

    清理MySQL Binlog二進制日志的三種方式

    Binlog日志非常重要,但是占用的磁盤空間也很大,我們也需要定期的去清理二進制日志,在MySQL數(shù)據(jù)庫中,提供了自動清理Binlog日志的參數(shù),本文給大家介紹了清理MySQL Binlog二進制日志的三種方式,文中通過代碼講解非常詳細,需要的朋友可以參考下
    2024-01-01
  • MySQL數(shù)據(jù)表合并去重的簡單實現(xiàn)方法

    MySQL數(shù)據(jù)表合并去重的簡單實現(xiàn)方法

    這篇文章主要給大家介紹了關于MySQL數(shù)據(jù)表合并去重的簡單實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MySQL具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05

最新評論