我有一个包含 74 列和大约 60K 行的 CSV 文件。这个 CSV 文件的内容必须每月导入 MySQL 数据库。
插入数据后,最终用户可以使用预定义的过滤器查询 MySQL 数据库的内容。
将所有内容放在一个表中意味着更快的插入,但更慢的读取。将内容拆分为多个表(使用外键)将意味着更慢的插入、更快的读取以及我认为更高的失败机会。
您认为对我来说最好的选择是什么,或者还有其他可能性吗?
如果所有数据关系(巴士、客户和行程之间)都是 1 对 1 的,并且信息没有在整个 CSV 中重复,那么您可以使用单个表,原因如下:
SELECT departure, arrival, distance FROM bustrips WHERE distance > 1000
)\但是,如果您查看数据,并且 CVS 中存在大量重复,可能来自多个客户乘坐同一次旅行,或者同一巴士用于多次旅行等。我会创建每个唯一数据块的新表。我可能已经看到的一个示例是公共汽车的新表:
Bus_ID;
Numberplate;
Handicap;
Odometer reading;
我希望这可以帮助您做出决定。这与“易读”与“易写”无关,而是通过减少冗余来提高信息清晰度。
不用看你的专栏,我几乎可以保证多表是要走的路。
如果数据库插入时间确实成为一个大问题,您总是可以花一点时间编写一个宏来为您完成。