有没有办法“加载数据infile”而不锁定或检查表锁? 我有其他进程读取同一个表,我想在此表中执行“加载数据infile”。
答案 0 :(得分:0)
如果表是InnoDB(支持行级锁定),并且表是正确索引的,则默认情况下应该可以对预先存在的行进行并发读取。
如果表格是MyISAM,那么CONCURRENT
选项可能会有所帮助:
如果使用满足并发插入条件的MyISAM表指定
CONCURRENT
(即,中间不包含空闲块),则其他线程可以在LOAD DATA
时从表中检索数据正在执行。
如果以上都不起作用,那么您可以将输入文件拆分为较小的部分并连续加载每个部分。这样,将在每批之间处理并发(阻塞)读取,从而减少其等待时间。但是使用此选项,您需要获取地址数据完整性问题(即:在整个批量加载操作完成之前,是否允许并发读取访问部分加载的数据?)