2017-07-24 54 views
0

在日常的cron作業中,我需要在Mysql中創建一個表,執行一些處理並在最後放下它(不再需要此表)。刪除在Mysql中創建表與截斷表

我的問題是以下兩種策略是在CPU使用率和內存佔用方面更好:

  1. 在作業開始創建表,並在年底放棄它。
  2. TRUNCATE表在作業結束時(即表格不會被刪除,只是在每次作業運行後它會被截斷)。

在第一種方法中,必須在每個作業運行中創建一個新表格,而在第二種方法中,即使作業運行後不需要,表格仍保留在Mysql 24 * 7中。

+0

那麼空表不會影響性能,因爲閱讀需要這麼短的時間,甚至不值得將其視爲開銷。我更喜歡選項2 - 只需添加數據並在日期結束時截斷:) – ThisGuyHasTwoThumbs

+1

創建/刪除的優勢在於您無需關心表結構是否更改,因爲它始終使用當前需要的任何結構創建。截斷是好的,但也需要維護表。 –

回答

2

您可以創建,而不是創建實際的表臨時表:

CREATE TEMPORARY TABLE IF NOT EXISTS table2 AS (SELECT * FROM table1) 
+0

無法使用臨時表,因爲我正在使用MysqlConnectionPool並執行單個語句我可以獲得不同的連接 –

0

在開始使用此查詢

Select * into test from Table 

,並在最後截斷它,並把它。

Truncate table test 
Or 
Drop table test