在日常的cron作业中,我需要在Mysql中创建一个表,执行一些处理并在最后放下它(不再需要此表)。删除在Mysql中创建表与截断表
我的问题是以下两种策略是在CPU使用率和内存占用方面更好:
- 在作业开始创建表,并在年底放弃它。
- TRUNCATE表在作业结束时(即表格不会被删除,只是在每次作业运行后它会被截断)。
在第一种方法中,必须在每个作业运行中创建一个新表格,而在第二种方法中,即使作业运行后不需要,表格仍保留在Mysql 24 * 7中。
在日常的cron作业中,我需要在Mysql中创建一个表,执行一些处理并在最后放下它(不再需要此表)。删除在Mysql中创建表与截断表
我的问题是以下两种策略是在CPU使用率和内存占用方面更好:
在第一种方法中,必须在每个作业运行中创建一个新表格,而在第二种方法中,即使作业运行后不需要,表格仍保留在Mysql 24 * 7中。
您可以创建,而不是创建实际的表临时表:
CREATE TEMPORARY TABLE IF NOT EXISTS table2 AS (SELECT * FROM table1)
无法使用临时表,因为我正在使用MysqlConnectionPool并执行单个语句我可以获得不同的连接 –
在开始使用此查询
Select * into test from Table
,并在最后截断它,并把它。
Truncate table test
Or
Drop table test
那么空表不会影响性能,因为阅读需要这么短的时间,甚至不值得将其视为开销。我更喜欢选项2 - 只需添加数据并在日期结束时截断:) – ThisGuyHasTwoThumbs
创建/删除的优势在于您无需关心表结构是否更改,因为它始终使用当前需要的任何结构创建。截断是好的,但也需要维护表。 –