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

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

生活随笔

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

编程问答

delete 会不会锁表_truncate 和 delete

發(fā)布時(shí)間:2023/12/18 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 delete 会不会锁表_truncate 和 delete 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

truncate 和 delete 是 MySQL 中清空表數(shù)據(jù)的兩種方式,平常使用的時(shí)候兩者好像都差不多,選誰(shuí)都可以。實(shí)際上它們之間是有本質(zhì)區(qū)別的,只有深入理解了它們的差異,在以后的開(kāi)發(fā)中才能根據(jù)具體場(chǎng)景運(yùn)用自如

思考

在講 truncate 和 delete 的區(qū)別之前,不妨先看看下面的問(wèn)題,帶著問(wèn)題邊思考邊往下看

問(wèn)題:如上圖所示,紅色框(1) 和 紅色框(2) 中 id 分別是多少

delete 簡(jiǎn)述

刪除表全部數(shù)據(jù)或者部分?jǐn)?shù)據(jù),刪除的時(shí)候是一行一行刪除的,所以刪除表全部數(shù)據(jù)時(shí)速度比較慢

語(yǔ)句后面可以用 where 過(guò)濾待刪除的行,比較靈活

語(yǔ)句執(zhí)行之后會(huì)返回本次刪除的行數(shù)

truncate 簡(jiǎn)述

刪除表全部數(shù)據(jù),相當(dāng)于先 drop table 然后 create table, 速度快語(yǔ)句后面不能接過(guò)濾條件語(yǔ)句執(zhí)行后沒(méi)有返回值,或者說(shuō)返回值沒(méi)有具體的含義

區(qū)別

雖然 truncate 和 delete 很相似,但它們有以下不同之處

  • delete 是一行一行的刪除數(shù)據(jù),truncate 是重新創(chuàng)建表,所以truncate 比 delete 速度快,特別是針對(duì)大表

  • 其他表有引用本表列的外鍵字時(shí),truncate 會(huì)執(zhí)行失敗,delete 可以執(zhí)行

上圖中?tb?表的?idb?列是ta表的ida列的外鍵引用,truncate table ta?執(zhí)行失敗, truncate table ta?能執(zhí)行成功

  • truncate 是DDL語(yǔ)句,所以不能回滾,delete 是DML語(yǔ)句,可以回滾

  • truncate 返回值無(wú)意義, delete 返回本次刪除的行數(shù)

  • 針對(duì) AUTO_INCREMENT 列,truncate tablename 會(huì)把列值重置為起始值,而 delete from tablename 則不會(huì)重置(上面的思考題用到了這條知識(shí)點(diǎn))

delete 的優(yōu)化

前面提到使用 delete 清空大表是速度比較慢,為了保證 delete 語(yǔ)句不會(huì)占用大量的時(shí)間,可以使用?limit row_count?語(yǔ)句來(lái)指定單次刪除的最大行數(shù),如果刪除的行數(shù)大于等于單次刪除的最大行數(shù),重復(fù)執(zhí)行 delete 語(yǔ)句直到刪除的行數(shù)小于單次刪除的最大值

答案

有了前面的介紹之后,思考題的答案應(yīng)該很清晰了

因?yàn)楸?tt?中?id?列是自增的,truncate 清空表數(shù)據(jù)會(huì)重置自增列,而 delete則不會(huì),所以思考題中 (1) 處的 id 分別是 3、4, (2) 處的 id 分別是 1,2

具體的輸出如下圖:

總結(jié)

以上是生活随笔為你收集整理的delete 会不会锁表_truncate 和 delete的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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