1. 程式人生 > >MySQL清空單表資料

MySQL清空單表資料

一:問題背景

       1. 問題描述

         之前測試1千萬資料插入MySQL資料庫裡面,分別使用單執行緒的方式和執行緒池的方式對比測試,檢視效果,但是插入了1千萬資料後,由於是測試資料,現在不能在新建一張表浪費儲存空間,還是之前的表,要清空原來的資料.有哪些方式可用?

       2. 解決思路

         單表刪除資料,無非是delete

truncate.刪除全表資料的SQL語句如下.當然delete可以結合where,limit刪除指定的資料記錄.

         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開始的.