我正在使用现有的PHP / MySql / JS / Ajax Web应用程序来处理用户的大量表行。这是页面当前的工作方式。
我的问题是这个应用程序是应该将数据放入每个上传的新表中,还是放入一个每个文件都带有id的大表中?我认为原始开发人员正在为速度目的添加单独的表。速度对此非常重要。
有更快的方法吗?是否有更好的鼠标陷阱?有没有人对此有所了解?
请记住,每个.csv都可以包含数十万行,每天可以上传数百个.csv文件。虽然它们可以在最后一次使用后大约24小时被删除(我认为cron工作有任何意见吗?)
谢谢大家!
基于评论的一些注释:
答案 0 :(得分:2)
每天有10个 5 行和10个 2 CSV,你每天看1000万行(你说你会定期清除这些数据) )。对于一个体面的数据库来说,这看起来并不像一个可怕的数字(特别是考虑到你可以在表中进行索引,而不是跨多个表)。
显然,最经常使用的CSV可以非常容易地保存在内存中以提高访问速度 - 甚至可能是所有这些(基于没有数据的非常简单的计算,如果你每24小时冲洗一次就会给我一个1Gb的数字这些天1Gb不是一个不合理的记忆量)
答案 1 :(得分:2)
由于您无法更改数据结构的简单原因,我会回避将所有数据放入单个表中。
由于数据正在被删除,并且您不需要组合来自不同负载的数据,因此没有明显的理由将数据放入单个表中。另一个论点是应用程序现在可以工作。你是否真的希望在完成工作之后发现一些暗示单独的表的要求?
如果确定单个表,则使用表分区。由于每个用户都在使用自己的数据,因此您可以使用分区将每个用户负载分成单独的分区。虽然分区有限制(例如没有外键),但这样可以像访问原始数据一样快速访问单个表中的数据。