Mysql三種常用的刪除數(shù)據(jù)或者表的方式
前言
在 MySQL 中,有三種常用的方式可以刪除表中的數(shù)據(jù)或整個(gè)表,它們分別是 TRUNCATE、DROP 和 DELETE。
TRUNCATE TABLE
TRUNCATE TABLE屬于DDL語(yǔ)言,不走事務(wù),數(shù)據(jù)不會(huì)回滾
TRUNCATE TABLE 語(yǔ)句會(huì)刪除表中的所有數(shù)據(jù),但保留表的結(jié)構(gòu),同時(shí)重置自增主鍵,釋放空間
語(yǔ)法:
TRUNCATE TABLE table_name;
DROP TABLE
DROP TABLE屬于DDL語(yǔ)言,不走事務(wù),數(shù)據(jù)不會(huì)回滾
DROP TABLE 語(yǔ)句會(huì)完全刪除表,包括表的結(jié)構(gòu)和其中的數(shù)據(jù)。它會(huì)永久刪除表,立即釋放空間,無(wú)法撤銷。
語(yǔ)法:
DROP TABLE [IF EXISTS] table_name;
如果指定了 IF EXISTS,則在表不存在時(shí)不會(huì)報(bào)錯(cuò),直接返回操作成功。例如,DROP TABLE IF EXISTS employees; 將刪除名為 employees 的表,如果該表存在的話。
DELETE
DELETE屬于DML操作語(yǔ)言,只會(huì)刪除數(shù)據(jù)不會(huì)刪除表結(jié)構(gòu),會(huì)走事務(wù),可回滾
DELETE 語(yǔ)句用于逐行刪除表中的數(shù)據(jù),可以根據(jù)指定的條件刪除特定的行。
語(yǔ)法:
DELETE FROM table_name [WHERE condition];
DELETE 語(yǔ)句是一種較為慢速和資源密集的操作,因?yàn)樗鼘⒅鹦袆h除表中的數(shù)據(jù),并且會(huì)觸發(fā)事務(wù)日志和觸發(fā)器等操作。如果只是想刪除表中的數(shù)據(jù)而不是整個(gè)表,TRUNCATE TABLE 操作通常更快和更高效。
使用 DELETE 語(yǔ)句刪除表中的數(shù)據(jù)并不會(huì)立即釋放磁盤空間,當(dāng)你執(zhí)行 DELETE 語(yǔ)句刪除行時(shí),實(shí)際上是將這些行標(biāo)記為已刪除,但數(shù)據(jù)仍然占用磁盤空間。
如果你希望立即釋放磁盤空間,可以使用 OPTIMIZE TABLE 命令。該命令將重建表,并且可以壓縮表的數(shù)據(jù),從而釋放已刪除行所占用的空間。
到此這篇關(guān)于Mysql三種常用的刪除數(shù)據(jù)或者表的方式的文章就介紹到這了,更多相關(guān)Mysql 刪除內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- mysql批量刪除數(shù)據(jù)方法及注意事項(xiàng)說(shuō)明
- mysql如何查詢重復(fù)數(shù)據(jù)并刪除
- mysql中刪除數(shù)據(jù)的幾種方法(最新推薦)
- mysql正確刪除數(shù)據(jù)的方法(drop,delete,truncate)
- mysql中刪除數(shù)據(jù)的四種方法小結(jié)
- Mysql中如何刪除表重復(fù)數(shù)據(jù)
- MySQL如何從數(shù)據(jù)庫(kù)中刪除表中所有數(shù)據(jù)
- 刪除MySQL表中重復(fù)數(shù)據(jù)詳解
- MySQL刪除數(shù)據(jù)庫(kù)的方法舉例
相關(guān)文章
MySQL誤刪數(shù)據(jù)恢復(fù)之Binlog回放+全量備份+延遲從庫(kù)的三種方案實(shí)戰(zhàn)
這篇文章主要介紹了MySQL數(shù)據(jù)誤刪后的恢復(fù)流程,詳細(xì)介紹了誤刪場(chǎng)景、恢復(fù)方案及預(yù)防措施,覆蓋了從止血到恢復(fù)的全過(guò)程,強(qiáng)調(diào)了全量備份與Binlog增量回放的重要性,需要的朋友可以參考下2026-06-06
MySQL常用客戶端工具的用途和詳細(xì)說(shuō)明
MySQL是一個(gè)廣泛使用的開源關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),它為開發(fā)者和數(shù)據(jù)庫(kù)管理員提供了一套完整的客戶端工具和功能,這篇文章主要介紹了MySQL常用客戶端工具的用途和詳細(xì)說(shuō)明的相關(guān)資料,需要的朋友可以參考下2025-09-09
在Mysql環(huán)境下對(duì)數(shù)據(jù)進(jìn)行增刪改查的操作方法
本文介紹了在MySQL環(huán)境下對(duì)數(shù)據(jù)進(jìn)行增刪改查的基本操作,包括插入數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)、數(shù)據(jù)查詢(基本查詢、連接查詢、聚合函數(shù)查詢、子查詢)等,并舉例說(shuō)明了每種操作的具體用法,感興趣的朋友跟隨小編一起看看吧2025-02-02
MySQL時(shí)間分區(qū)表的創(chuàng)建與數(shù)據(jù)清理
分區(qū)表是將一個(gè)大表在物理上分割成多個(gè)小表(分區(qū)),而在邏輯上仍然表現(xiàn)為一個(gè)完整表的技術(shù),本文將深入探討MySQL時(shí)間分區(qū)表的原理、創(chuàng)建方法以及如何高效清理過(guò)期分區(qū)數(shù)據(jù),感興趣的可以了解下2025-04-04
MySQL千萬(wàn)級(jí)大表進(jìn)行數(shù)據(jù)清理的幾種常見方案
當(dāng)MySQL數(shù)據(jù)庫(kù)中的表數(shù)據(jù)量達(dá)到千萬(wàn)級(jí)別時(shí),直接對(duì)數(shù)據(jù)進(jìn)行刪除操作將面臨嚴(yán)重的性能問題,可能會(huì)導(dǎo)致數(shù)據(jù)庫(kù)長(zhǎng)時(shí)間的鎖表,因此,如何安全高效地進(jìn)行數(shù)據(jù)清理成為一個(gè)亟需解決的問題,下面我將分享幾種常見的數(shù)據(jù)清理方案,需要的朋友可以參考下2023-11-11
Mysql?InnoDB?的內(nèi)存結(jié)構(gòu)詳情
這篇文章主要介紹了Mysql InnoDB的內(nèi)存結(jié)構(gòu)詳情,InnoDB存儲(chǔ)引擎的邏輯存儲(chǔ)結(jié)構(gòu)是什么呢,下面我們就一起進(jìn)入文章了解更多詳細(xì)內(nèi)容吧,感興趣的小伙伴可以參考一下2022-05-05

