這篇文章將為大家詳細(xì)講解有關(guān)drop、truncate與delete的區(qū)別是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
注意:這里說的delete是指不帶where子句的delete語句 相同點(diǎn) truncate和不帶where子句的delete, 以及drop都會刪除表內(nèi)的數(shù)據(jù) 不同點(diǎn): 1. truncate和 delete只刪除數(shù)據(jù)不刪除表的結(jié)構(gòu)(定義) drop語句將刪除表的結(jié)構(gòu)被依賴的約束(constrain),觸發(fā)器(trigger),索引(index); 依賴于該表的存儲過程/函數(shù)將保留,但是變?yōu)閕nvalid狀態(tài). 2.delete語句是dml,這個(gè)操作會放到rollback segement中,事務(wù)提交之后才生效;如果有相應(yīng)的trigger,執(zhí)行的時(shí)候?qū)⒈挥|發(fā). truncate,drop是ddl, 操作立即生效,原數(shù)據(jù)不放到rollback segment中,不能回滾. 操作不觸發(fā)trigger. 3.delete語句不影響表所占用的extent, 高水線(high watermark)保持原位置不動 顯然drop語句將表所占用的空間全部釋放 truncate 語句缺省情況下將空間釋放到 minextents個(gè) extent,除非使用reuse storage; truncate會將高水線復(fù)位(回到最開始). 4.速度,一般來說: drop>; truncate >; delete 5.安全性:小心使用drop 和truncate,尤其沒有備份的時(shí)候.否則哭都來不及 使用上,想刪除部分?jǐn)?shù)據(jù)行用delete,注意帶上where子句. 回滾段要足夠大. 想刪除表,當(dāng)然用drop 想保留表而將所有數(shù)據(jù)刪除. 如果和事務(wù)無關(guān),用truncate即可. 如果和事務(wù)有關(guān),或者想觸發(fā)trigger,還是用delete. 如果是整理表內(nèi)部的碎片,可以用truncate跟上reuse stroage,再重新導(dǎo)入/插入數(shù)據(jù) 通俗的講: 在實(shí)際應(yīng)用中,三者的區(qū)別是明確的。 當(dāng)你不再需要該表時(shí), 用 drop; 當(dāng)你仍要保留該表,但要刪除所有記錄時(shí), 用 truncate; 當(dāng)你要刪除部分記錄時(shí)(always with a WHERE clause), 用 delete.
關(guān)于drop、truncate與delete的區(qū)別是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
文章標(biāo)題:drop、truncate與delete的區(qū)別是什么-創(chuàng)新互聯(lián)
URL地址:http://jinyejixie.com/article46/digghg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、定制網(wǎng)站、品牌網(wǎng)站制作、網(wǎng)站營銷、標(biāo)簽優(yōu)化、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容