0

在 mysql 中有没有一种方法可以在不锁定或检查表锁的情况下“加载数据文件”?我有其他进程读取同一个表,我想在这个表中执行“加载数据文件”。

4

1 回答 1

0

如果表是 InnoDB(支持行级锁定)并且表被正确索引,则默认情况下应该可以对预先存在的行进行并发读取。

如果表是 MyISAM,那么该CONCURRENT选项可能会有所帮助:

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

如果以上都不起作用,那么您可以将输入文件拆分为较小的部分并依次加载每个部分。这样,将在每个批次之间处理并发(阻塞)读取,从而减少它们的等待时间。但是使用此选项,您需要解决数据完整性问题(即:是否应允许并发读取在整个批量加载操作完成之前访问部分加载的数据?)

于 2013-10-06T08:42:05.373 回答