LOAD DATA INFILE之后的分区索引

时间:2018-02-02 14:05:58

标签: mysql

我有一个InnoDB表,其中包含历史上数年和未来的数据。我需要定期更新表格,以便在第三方来源可用时添加数据。

因此,我按年划分了表格(p2004 ... p2018)

该表也在许多字段上编入索引。

要更新,我正在执行以下操作:

  

(1)TRUNCATE PARTITION p2018

     

(2)LOAD DATA INFILE ...(仅包含2018年数据的文件)......

该表的定义清楚地表明,2018数据仅存放在分区p2018中(我已通过原始数据文件的时间戳验证了这一点)。

我的问题是:在LOAD DATA INFILE命令完成时(或期间),p2018中的数据是否被索引?或者我是否需要发出另一个命令才能将p2018中的数据编入索引?如果是这样,那么命令是

ALTER TABLE tablename REBUILD PARTITION p2018

正确的命令?

我花了大约20分钟的谷歌搜索(包括StackExchange),但没有找到很好的指导。

1 个答案:

答案 0 :(得分:0)

作为mysql doc

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
    INTO TABLE tbl_name
   [PARTITION (partition_name [, partition_name] ...)]
    ....

你只需要提到这样的分区名称:

LOAD DATA INFILE 'p2018.csv'
INTO TABLE tbl_year
PARTITION 'p2018'
...

告诉我们您是否需要更多信息。