我有一个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),但没有找到很好的指导。
答案 0 :(得分:0)
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'
...
告诉我们您是否需要更多信息。