【问题标题】:Is LOAD DATA LOW_PRIORITY executed asynchronously?LOAD DATA LOW_PRIORITY 是异步执行的吗?
【发布时间】:2013-01-07 05:13:07
【问题描述】:

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

我只处理 MyISAM 引擎。

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

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

【问题讨论】:

    标签: java mysql myisam load-data-infile


    【解决方案1】:

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

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

    in the manual所述:

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

    【讨论】:

    • 谢谢,我希望它在您回答时阻止 LOW_PRIORITY
    猜你喜欢
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 2021-12-07
    • 2015-07-09
    相关资源
    最近更新 更多