2

我希望LOAD DATA LOW_PRIORITY INFILE从 Java 执行语句。

我只处理 MyISAM 引擎。

我很感兴趣是否statement.execute("LOAD DATA LOW_PRIORITY INFILE ...")会异步执行这个查询,或者它会阻塞直到这个语句完成。

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

4

1 回答 1

2

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

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

手册所述:

如果您对满足并发插入条件的 MyISAM 表指定 CONCURRENT(即,它中间不包含空闲块),则其他线程可以在执行 LOAD DATA 时从表中检索数据。

于 2013-01-23T17:37:27.743 回答