最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

簡介

delete

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

delete from table_name;

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

delete from table_name where...;

3、說明

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

truncate

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

truncate table table_name;

2、說明

 ?。?、默認(rèn)情況下,truncate通過釋放存儲表數(shù)據(jù)所用的數(shù)據(jù)頁來刪除數(shù)據(jù),并且只在事務(wù)日志中記錄頁的釋放。所以使用的系統(tǒng)和事務(wù)日志資源少,可以使用reuse storage; truncate會將高水線復(fù)位(回到最開始).
  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、表和索引所占空間:
  當(dāng)表被TRUNCATE 后,這個表和索引所占用的空間會恢復(fù)到初始大小;
  DELETE操作不會減少表或索引所占用的空間;
  DROP語句將表所占用的空間全釋放掉。

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

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

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

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

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

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

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

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

總結(jié)

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

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

相關(guān)文章

  • MySQL之多表查詢自連接方式

    MySQL之多表查詢自連接方式

    這篇文章主要介紹了MySQL之多表查詢自連接方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • MySQL 使用規(guī)范總結(jié)

    MySQL 使用規(guī)范總結(jié)

    MySQL已經(jīng)成為世界上最受歡迎的數(shù)據(jù)庫管理系統(tǒng)之一,無論是用在小型開發(fā)項(xiàng)目上,還是用在構(gòu)建那較大型的網(wǎng)站,MySQL都用實(shí)力證明了自己是一個穩(wěn)定、可靠、快速、可信的系統(tǒng),足以勝任任何數(shù)據(jù)存儲業(yè)務(wù)的需要。本文總結(jié)了MySQL的使用規(guī)范
    2020-09-09
  • mysql忘記密碼的解決方法

    mysql忘記密碼的解決方法

    mySQL忘記管理密碼的解決方法 ! 如果mySQL正在運(yùn)作,請先關(guān)閉,
    2008-06-06
  • MySQL分庫分表后路由策略設(shè)計(jì)詳情

    MySQL分庫分表后路由策略設(shè)計(jì)詳情

    這篇文章主要介紹了MySQL分庫分表后路由策略設(shè)計(jì)詳情,分庫分表后設(shè)計(jì)到的第一個問題就是,如何選擇路由key,應(yīng)該如何對key進(jìn)行路由
    2022-08-08
  • phpstudy無法啟動MySQL數(shù)據(jù)庫解決方法

    phpstudy無法啟動MySQL數(shù)據(jù)庫解決方法

    這篇文章主要給大家介紹了關(guān)于phpstudy無法啟動MySQL數(shù)據(jù)庫的解決方法,文中通過圖文將解決的辦法介紹的非常詳細(xì),對同樣遇到這個問題的同學(xué)具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-05-05
  • MySQL之搜索引擎使用解讀

    MySQL之搜索引擎使用解讀

    MySQL存儲引擎是數(shù)據(jù)存儲和管理的核心組件,不同引擎(如InnoDB、MyISAM)采用不同機(jī)制,InnoDB支持事務(wù)與行鎖,適合高并發(fā)場景;MyISAM不支持事務(wù),適合查詢?yōu)橹?死鎖可通過合理業(yè)務(wù)邏輯、拆分事務(wù)和一次性鎖定資源避免
    2025-09-09
  • MySQL觸發(fā)器基本用法詳解【創(chuàng)建、查看、刪除等】

    MySQL觸發(fā)器基本用法詳解【創(chuàng)建、查看、刪除等】

    這篇文章主要介紹了MySQL觸發(fā)器基本用法,結(jié)合實(shí)例形式分析了mysql觸發(fā)器的基本創(chuàng)建、查看、刪除等相關(guān)使用方法與注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • MySQL中l(wèi)ike的模糊查詢優(yōu)化以及虛擬列功能詳解

    MySQL中l(wèi)ike的模糊查詢優(yōu)化以及虛擬列功能詳解

    在數(shù)據(jù)庫查詢場景中,LIKE操作符的模糊匹配是高頻需求,但傳統(tǒng)寫法往往導(dǎo)致全表掃描,成為性能瓶頸,這篇文章主要介紹了MySQL中l(wèi)ike的模糊查詢優(yōu)化以及虛擬列功能的相關(guān)資料,需要的朋友可以參考下
    2026-03-03
  • mysql8關(guān)閉binlog并清空Binlog的方法

    mysql8關(guān)閉binlog并清空Binlog的方法

    這篇文章主要介紹了mysql8關(guān)閉binlog并清空Binlog,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • 詳解MySQL如何有效的存儲IP地址及字符串IP和數(shù)值之間如何轉(zhuǎn)換

    詳解MySQL如何有效的存儲IP地址及字符串IP和數(shù)值之間如何轉(zhuǎn)換

    本文主要介紹了MySQL如何有效的存儲IP地址及字符串IP和數(shù)值之間如何轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論

平昌县| 兴和县| 长丰县| 南充市| 安达市| 蕉岭县| 曲靖市| 彩票| 永吉县| 措勤县| 遵义市| 漯河市| 寿宁县| 南昌市| 汾西县| 洛浦县| 钟山县| 新建县| 呼和浩特市| 吕梁市| 佛学| 新巴尔虎右旗| 贵定县| 来宾市| 额济纳旗| 海阳市| 湘潭县| 新安县| 曲沃县| 百色市| 西峡县| 仁布县| 霍林郭勒市| 嵊州市| 江源县| 郓城县| 阿鲁科尔沁旗| 长宁区| 雅安市| 罗定市| 绥中县|