【发布时间】:2012-11-25 18:52:39
【问题描述】:
我正在处理现有的 PHP/MySql/JS/Ajax Web 应用程序,该应用程序为用户处理大量表行。以下是该页面当前的工作方式。
- 用户上传了一个 LARGE csv 文件。我正在使用的测试有 400,000 行(每行有 5 列)。
- Php 为此数据创建一个全新的表并插入数十万行。
- 然后页面以有用的方式对这些数据进行排序/处理/显示给用户。处理包括搜索、按日期和其他行排序并重新显示它们而无需大量加载时间(这就是 JS/Ajax 的用武之地)。
我的问题是,这个应用程序应该为每次上传将数据放入一个新表中,还是将每个文件的 id 放入一个大表中?我认为原始开发人员出于速度目的添加了单独的表格。速度对此非常重要。
有没有更快的方法?有没有更好的捕鼠器?有没有人对此感到厌烦?
请记住,每个 .csv 都可以包含数十万行,并且每天可以上传数百个 .csv 文件。虽然它们可以在最后一次使用后大约 24 小时被删除(我在想 cron 工作有什么意见吗?)
谢谢大家!
基于cmets的一些笔记:
- 所有数据对每个用户都是唯一的,并且会发生变化,因此用户不会在几个小时后重新访问这些数据。只有当他们不小心关闭窗口然后又回来时,他们才会真正重新访问相同的 .csv。
- 不需要外键所有 csv 对每个用户都是私有的,不需要交叉引用。
【问题讨论】:
标签: mysql sql database performance