java - LOAD DATA LOW_PRIORITY 是否异步执行?

标签 java mysql myisam load-data-infile

我希望执行LOAD DATA LOW_PRIORITY INFILE来自 Java 的声明。

我只处理 MyISAM 引擎。

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

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

最佳答案

LOAD DATA LOW_PRIORITY INFILE ... 会阻塞,直到在命令行上完成为止,因此我假设您的代码也会阻塞。

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

如上所述in the manual :

If you specify CONCURRENT with a MyISAM table that satisfies the condition for concurrent inserts (that is, it contains no free blocks in the middle), other threads can retrieve data from the table while LOAD DATA is executing.

关于java - LOAD DATA LOW_PRIORITY 是否异步执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14484545/

相关文章:

java - GlassFish 4 错误 : FATAL: FATAL: JSF1073: javax. el.ELException

Java 更新 UIManager 默认值并重绘组件

python - 类型错误:无法将 'QRadioButton' 对象隐式转换为 str

mysql - 如何将所有 InnoDB 表转换为 MyISAM?

MySQL FULLTEXT 不工作

java - EclipseLink - 双向 OneToMany 关系

Java - 契约测试

mysql - 如果数据库存在,如何退出 MySQL 脚本

mysql - 如何按字母顺序查询多个表?

php - MySQL数据库性能问题。 (MyISAM)