我希望从Java执行LOAD DATA LOW_PRIORITY INFILE
语句。
我只处理MyISAM引擎。
我感兴趣的是statement.execute("LOAD DATA LOW_PRIORITY INFILE ...")
将异步执行此查询,还是会阻止此语句完成。
我问这个,因为我在此语句之后有基于加载数据的SQL操作,但我仍然感兴趣的是,对此表执行的任何读操作同时执行将优先于LOAD DATA
语句
答案 0 :(得分:2)
LOAD DATA LOW_PRIORITY INFILE ...
阻止直到命令行完成,所以我假设你的代码也会阻塞。
如果您希望并发交易能够在导入期间从您的表中读取,那么您希望使用CONCURRENT
选项而不是LOW PRIORITY
。
如上所述in the manual:
如果使用满足的MyISAM表指定CONCURRENT 并发插入的条件(即,它不包含空闲块 在中间),其他线程可以从表中检索数据 LOAD DATA正在执行。