我可以在从 csv 文件加载数据时查询 mysql 数据库吗?

can I query a mysql database while data is being loaded from a csv file?

它花费的时间太长,我无法知道它是否会在完成后按预期加载。我可以查询 table 以至少确保数据按预期加载吗?有没有办法在负载工作时查看一些行?

如果我们假设您正在使用 LOAD DATA INFILE 语句进行批量加载,那么答案是否定的,批量加载以原子方式执行。这意味着在批量加载完成之前,其他会话无法看到批量加载的结果。如果由于某种原因失败,则回滚整个数据集。

如果您想看到渐进的进展,您需要使用一些客户端来读取 CSV 文件并插入单独的行(或至少行的子集)并每隔一段时间提交插入内容。

或者,如果您将 CSV 输入文件拆分为多个较小的文件,则可以使用 LOAD DATA INFILE,这样您就可以批量加载它们。如果您只是想测试加载是否正确完成,您应该从一个小得多的文件开始并加载它。