91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

MySQL數據庫:drop、truncate和delete的區別

如意 ? 來源:CSDN ? 作者:海盜船長沒有船 ? 2020-08-19 17:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、delete

delete是DML(data maintain Language,這個操作會被放到 rollback segment中,事務提交后才生效),執行delete操作時,每次從表中刪除一行,并且同時將該行的的刪除操作記錄在redo和undo表空間中以便進行回滾(rollback)和重做操作,但要注意表空間要足夠大,需要手動提交(commit)操作才能生效,可以通過rollback撤消操作。

delete可根據條件刪除表中滿足條件的數據,如果不指定where子句,那么刪除表中所有記錄。

delete語句不影響表所占用的extent,高水線(high watermark)保持原位置不變。

二、truncate

truncate是DDL,會隱式提交,所以,不能回滾,不會觸發觸發器。

truncate會刪除表中所有記錄,并且將重新設置高水線和所有的索引,缺省情況下將空間釋放到minextents個extent,除非使用reuse storage。不會記錄日志,所以執行速度很快,但不能通過rollback撤消操作(如果一不小心把一個表truncate掉,也是可以恢復的,只是不能通過rollback來恢復)。

對于外鍵(foreignkey )約束引用的表,不能使用 truncate table,而應使用不帶 where 子句的 delete 語句。

truncatetable不能用于參與了索引視圖的表。

三、drop

drop是DDL,會隱式提交,所以,不能回滾,不會觸發觸發器。

drop語句刪除表結構及所有數據,并將表所占用的空間全部釋放。

drop語句將刪除表的結構所依賴的約束,觸發器,索引,依賴于該表的存儲過程/函數將保留,但是變為invalid狀態。

總結:

1、在速度上,一般來說,drop》 truncate 》 delete。

2、在使用drop和truncate時一定要注意,雖然可以恢復,但為了減少麻煩,還是要慎用。

3、如果想刪除部分數據用delete,注意帶上where子句,回滾段要足夠大;

如果想刪除表,當然用drop;

如果想保留表而將所有數據刪除,如果和事務無關,用truncate即可;

如果和事務有關,或者想觸發trigger,還是用delete;

如果是整理表內部的碎片,可以用truncate跟上reuse stroage,再重新導入/插入數據。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據庫
    +關注

    關注

    7

    文章

    3927

    瀏覽量

    66251
  • 觸發器
    +關注

    關注

    14

    文章

    2039

    瀏覽量

    62146
  • MySQL
    +關注

    關注

    1

    文章

    860

    瀏覽量

    27945
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    企業級MySQL數據庫管理指南

    在當今數字化時代,MySQL作為全球最受歡迎的開源關系型數據庫,承載著企業核心業務數據的存儲與處理。作為數據庫管理員(DBA),掌握MySQL
    的頭像 發表于 07-09 09:50 ?133次閱讀

    遠程訪問內網MySQL數據庫?這個方案更簡單

    各位開發者朋友們,是否還在為無法隨時隨地訪問內網MySQL數據庫而煩惱?今天分享一個超實用的方法,通過容器部署 MySQL 結合 ZeroNews 內網穿透,讓你在任何地方都能安全訪問和管理
    的頭像 發表于 07-04 18:06 ?184次閱讀
    遠程訪問內網<b class='flag-5'>MySQL</b><b class='flag-5'>數據庫</b>?這個方案更簡單

    oracle數據恢復—oracle數據庫誤執行錯誤truncate命令如何恢復數據

    oracle數據庫誤執行truncate命令導致數據丟失是一種常見情況。通常情況下,oracle數據庫誤操作刪除數據只需要通過備份恢復
    的頭像 發表于 06-05 16:01 ?331次閱讀
    oracle<b class='flag-5'>數據</b>恢復—oracle<b class='flag-5'>數據庫</b>誤執行錯誤<b class='flag-5'>truncate</b>命令如何恢復<b class='flag-5'>數據</b>?

    MySQL數據庫采集網關是什么?有什么功能?

    MySQL數據庫采集網關是一種用于連接、采集、處理并傳輸數據MySQL數據庫的中間設備或軟件系統,通常部署在
    的頭像 發表于 05-26 15:20 ?191次閱讀

    MySQL數據庫是什么

    MySQL數據庫是一種 開源的關系型數據庫管理系統(RDBMS) ,由瑞典MySQL AB公司開發,后被Oracle公司收購。它通過結構化查詢語言(SQL)進行
    的頭像 發表于 05-23 09:18 ?453次閱讀

    數據庫數據恢復——MySQL數據庫誤刪除表記錄的數據恢復案例

    本地服務器,安裝的windows server操作系統。 操作系統上部署MySQL單實例,引擎類型為innodb,表空間類型為獨立表空間。該MySQL數據庫沒有備份,未開啟binlog。 人為
    的頭像 發表于 02-22 09:44 ?693次閱讀
    <b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復——<b class='flag-5'>MySQL</b><b class='flag-5'>數據庫</b>誤刪除表記錄的<b class='flag-5'>數據</b>恢復案例

    服務器數據恢復—linux操作系統云服務器數據恢復案例

    某ECS網站服務器,linux操作系統+mysql數據庫mysql數據庫采用innodb作為默認存儲引擎。 在執行數據庫版本更新測試時,
    的頭像 發表于 02-10 18:00 ?397次閱讀
    服務器<b class='flag-5'>數據</b>恢復—linux操作系統云服務器<b class='flag-5'>數據</b>恢復案例

    從Delphi、C++ Builder和Lazarus連接到MySQL數據庫

    ? 從 Delphi、C++ Builder 和 Lazarus 連接到 MySQL 數據庫 MySQL 數據訪問組件(MyDAC)是一個組件
    的頭像 發表于 01-20 13:47 ?746次閱讀
    從Delphi、C++ Builder和Lazarus連接到<b class='flag-5'>MySQL</b><b class='flag-5'>數據庫</b>

    適用于MySQL和MariaDB的Python連接器:可靠的MySQL數據連接器和數據庫

    和 Linux 的 wheel 包分發。 直接連接 該解決方案使您能夠通過 TCP/IP 建立與 MySQL 或者 MariaDB 數據庫服務器的直接連接,而無需數據庫客戶端。另外
    的頭像 發表于 01-17 12:18 ?496次閱讀
    適用于<b class='flag-5'>MySQL</b>和MariaDB的Python連接器:可靠的<b class='flag-5'>MySQL</b><b class='flag-5'>數據</b>連接器和<b class='flag-5'>數據庫</b>

    MySQL數據庫的安裝

    MySQL數據庫的安裝 【一】各種數據庫的端口 MySQL :3306 Redis :6379 MongoDB :27017 Django :8000 flask :5000 【二】
    的頭像 發表于 01-14 11:25 ?565次閱讀
    <b class='flag-5'>MySQL</b><b class='flag-5'>數據庫</b>的安裝

    關系型數據庫和非關系型區別

    關系型數據庫和非關系型數據庫在多個方面存在顯著差異,主機推薦小編為您整理發布關系型數據庫和非關系型區別,以下是它們的主要區別
    的頭像 發表于 01-10 09:58 ?685次閱讀

    數據庫數據恢復—Mysql數據庫表記錄丟失的數據恢復流程

    Mysql數據庫故障: Mysql數據庫表記錄丟失。 Mysql數據庫故障表現: 1、
    的頭像 發表于 12-16 11:05 ?616次閱讀
    <b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復—<b class='flag-5'>Mysql</b><b class='flag-5'>數據庫</b>表記錄丟失的<b class='flag-5'>數據</b>恢復流程

    數據庫數據恢復—MYSQL數據庫ibdata1文件損壞的數據恢復案例

    mysql數據庫故障: mysql數據庫文件ibdata1、MYI、MYD損壞。 故障表現:1、數據庫無法進行查詢等操作;2、使用my
    的頭像 發表于 12-09 11:05 ?635次閱讀

    Oracle數據恢復—Oracle數據庫delete刪除的數據恢復方法

    刪除Oracle數據庫數據一般有以下2種方式:deletedroptruncate。下面針對這2種刪除oracle
    的頭像 發表于 09-11 11:45 ?716次閱讀

    華納云:MySQL初始化操作如何創建新的數據庫

    要在MySQL中創建一個新的數據庫,可以按照以下步驟進行操作: 登錄到MySQL數據庫管理系統中。可以使用MySQL命令行客戶端或者圖形化工
    的頭像 發表于 09-04 14:30 ?551次閱讀
    主站蜘蛛池模板: 久久精品国产福利 | 天天综合在线观看 | 黄色录像欧美 | 久久精品夜色国产 | 天天草狠狠干 | 国产男人女人做性全过程视频 | 波多野结衣的毛片 | 综合激情网五月 | 美女喷白浆 | 亚洲欧美一区二区三区麻豆 | 狠狠去 | 天天狠天天插 | 国产视频一区二 | 一级特黄性色生活片一区二区 | 国产免费一区二区三区 | 天天爽夜夜爽精品免费 | 欧美成人三级伦在线观看 | 免费一级毛片私人影院a行 免费一级毛片无毒不卡 | 波多野结衣福利 | 日本欧美一区二区免费视 | 亚洲日本一区二区三区在线不卡 | 日本黄色高清视频网站 | 99pao强力打造免费高清色 | 天天夜夜狠狠一区二区三区 | 午夜视频www | 日本在线黄色 | 天天噜天天干 | 日本在线黄色网址 | 1024在线观看你懂的 | 1024手机在线观看视频 | 亚洲第一精品夜夜躁人人爽 | 亚洲 欧美 自拍 卡通 综合 | 久久久久免费精品国产小说 | 日韩系列| 一级片免费视频 | 婷婷综合在线观看丁香 | 婷婷四房播客五月天 | 成人久久久久久 | 四虎影院永久免费观看 | 日韩免费三级 | 一二三区乱码一区二区三区码 |