我正在开发一个应用程序,在 FTP 上创建的新文件将直接导入到数据库中,并根据该文件的内容,我必须通过我的开发语言执行操作。正在创建的文件是 .csv 文件。
现在的问题是,CSV的总大小是否会影响性能?因为在某些情况下,CSV 文件可能包含超过 100K 行,并根据需要强制插入所有行。将以大约 10-15 分钟的时间间隔创建三个这样的文件。
预计数据量每天至少 4000 万条记录。我对此非常怀疑,这是否也会影响性能?然而,据我所知,数据库大小不应该影响性能,而是影响查询,我仍然需要在某个时间间隔刷新数据,还是需要处理我在这里没有提到的任何事情?
我的应用程序的流程是,一个模块将继续读取这些文件以存储数据并执行所需的操作并保存到数据库的相关字段中,另一个模块将使用此处理后的数据进行查看。
谢谢。
最佳答案
(目前还不清楚你在做什么处理;所以我会做一些猜测。)
您每秒插入/处理数百行。这会对系统产生多方面的影响,但不应该“太大”。
如果该表格是现有表格的替换:
像真实一样创建表tmp;
LOAD DATA ... tmp ...;
-- 将所有 3 个数据加载到同一个表中?将表重命名为旧表,tmp 重命名为实表;删除旧表;
最好创建除 PRIMARY KEY 之外不带任何索引的表,然后在步骤 2 和 3 之间添加索引。
如果您只需要咀嚼数据然后将其丢弃:
创建表 tmp ( ... ) ENGINE = MyISAM;
LOAD DATA ... tmp ...;
-- 将所有 3 个数据加载到同一个表中?- 可以选择添加索引以方便咀嚼。 (加载后执行可能会更快。)
- 随心所欲地咀嚼。
删除表 tmp;
关于MySQL DB 每天大量记录会影响性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31692519/