2013-01-23 31 views
1

我希望执行来自Java的LOAD DATA LOW_PRIORITY INFILE声明。LOAD DATA LOW_PRIORITY是异步执行的吗?

我只处理MyISAM引擎。

我很感兴趣,如果statement.execute("LOAD DATA LOW_PRIORITY INFILE ...")将异步执行此查询,或将阻塞,直到此语句将完成。

我在问这个,因为我在这个语句之后有基于加载数据的SQL操作,但是我仍然感兴趣的是对这个表执行的任何读操作将比LOAD DATA语句具有更高的优先级。

回答

1

LOAD DATA LOW_PRIORITY INFILE ...块直到命令行完成,所以我假设你的代码也会阻塞。

如果希望并发事务能够在导入期间从表中读取,那么您希望使用CONCURRENT选项而不是LOW PRIORITY

如前所述in the manual

如果指定一致与满足 条件并行插入(即,它包含在中间没有空闲块 )MyISAM表,其他线程可以检索数据从表中删除 LOAD DATA正在执行。

+0

谢谢,我希望它在您回答LOW_PRIORITY时阻止 – Michael