MySQL清空單表資料
阿新 • • 發佈:2018-11-28
一:問題背景
1. 問題描述
之前測試1千萬資料插入MySQL資料庫裡面,分別使用單執行緒的方式和執行緒池的方式對比測試,檢視效果,但是插入了1千萬資料後,由於是測試資料,現在不能在新建一張表浪費儲存空間,還是之前的表,要清空原來的資料.有哪些方式可用?
2. 解決思路
單表刪除資料,無非是delete
delete from TableName;
truncate table TableName;
二:實驗測試
實驗資料如下:
1. delete刪除資料.(本次測試的資料量是1000萬條).
DELETE FROM user_test;
清空後表結果如下:
測試插入資料看一下資料的主鍵編號.()
檢視新增的記錄.
2. truncate刪除資料.
執行刪除資料.
truncate table user_test;
新增一條記錄.
產看錶資料.
三:對比總結
1. delete刪除資料速度慢,一條一條刪除,可以指定刪除條件where/limit,MySQL儲存了資料日誌,可以恢復資料的,可以返回刪除的受影響記錄數.新增資料時在原來的資料後面插入資料的.
2. truncate直接將表中的資料全部刪除,新建一個表結構,一切從新開始,刪除資料不會返回記錄數.資料無法恢復,無法指定刪除條件的.清空資料後,下次插入資料時,原來自增的資料欄位從1開始的.