日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

DROP TABLE、TRUNCATE TABLE和DELETE的区别

發(fā)布時(shí)間:2024/4/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DROP TABLE、TRUNCATE TABLE和DELETE的区别 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

相同點(diǎn)

TRUNCATE TABLE和DELETE都可以刪除整個(gè)數(shù)據(jù)庫(kù)表的記錄

不同點(diǎn)

  • DELETE
    DML語(yǔ)言
    可以回退
    可以有條件的刪除
    DELETE FROM 表名 WHERE 條件

  • TRUNCATE TABLE
    DDL語(yǔ)言
    無(wú)法回退
    默認(rèn)所有的表內(nèi)容都刪除
    刪除速度比delete快
    TRUNCATE TABLE 表名

  • DROP TABLE
    用于刪除表(表的結(jié)構(gòu)、屬性以及索引也會(huì)被刪除);
    DROP TABLE 表名

  • 原理

    DDL(Data Definition Language)數(shù)據(jù)定義語(yǔ)言,DML(Data Manipulation Language)數(shù)據(jù)操作語(yǔ)言。

    • TRUNCATE在各種表上無(wú)論是大的還是小的都非常快。如果有ROLLBACK命令Delete將被撤銷,而TRUNCATE則不會(huì)被撤銷。
    • TRUNCATE是一個(gè)DDL語(yǔ)言,向其他所有的DDL語(yǔ)言一樣,他將被隱式提交,不能對(duì)TRUNCATE使用ROLLBACK命令。
    • TRUNCATE將重新設(shè)置高水平線和所有的索引。在對(duì)整個(gè)表和索引進(jìn)行完全瀏覽時(shí),經(jīng)過(guò)TRUNCATE操作后的表比Delete操作后的表要快得多。
    • TRUNCATE不能觸發(fā)任何Delete觸發(fā)器。
    • 當(dāng)表被清空后表和表的索引講重新設(shè)置成初始大小,而delete則不能。
    • 不能清空父表。

    優(yōu)化

    在數(shù)據(jù)庫(kù)里,使用delete刪除數(shù)據(jù)以后,數(shù)據(jù)庫(kù)的存儲(chǔ)容量不會(huì)減少,而且使用delete刪除某個(gè)表的數(shù)據(jù)以后,查詢這張表的速度和刪除之前一樣,不會(huì)發(fā)生變化。
    因?yàn)閿?shù)據(jù)庫(kù)有一個(gè)HWM高水位,它是oracle的一個(gè)表使用空間最高水位線。當(dāng)插入了數(shù)據(jù)以后,高水位線就會(huì)上漲,但是如果你采用delete語(yǔ)句刪除數(shù)據(jù)的話,數(shù)據(jù)雖然被刪除了,但是高水位線卻沒(méi)有降低,還是你剛才刪除數(shù)據(jù)以前那么高的水位。除非使用truncate刪除數(shù)據(jù)。那么,這條高水位線在日常的增刪操作中只會(huì)上漲,不會(huì)下跌,所以數(shù)據(jù)庫(kù)容量也只會(huì)上升,不會(huì)下降。而使用select語(yǔ)句查詢數(shù)據(jù)時(shí),數(shù)據(jù)庫(kù)會(huì)掃描高水位線以下的數(shù)據(jù)塊,因?yàn)楦咚痪€沒(méi)有變化,所以掃描的時(shí)間不會(huì)減少,所以才會(huì)出現(xiàn)使用delete刪除數(shù)據(jù)以后,查詢的速度還是和delete以前一樣。

    轉(zhuǎn)載于:https://www.cnblogs.com/lanbosm/articles/8714688.html

    總結(jié)

    以上是生活随笔為你收集整理的DROP TABLE、TRUNCATE TABLE和DELETE的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。