我想备份到我的数据库,但在写入CSV文件之前需要进行一些数据操作
我的想法是首先创建一个数组或链表格式的数据(主要是插入和计算特定项目,包括在数组中间插入,顺序很重要),然后只需将数组项写入文件。
每个项目都有相同的字段。
数据量非常大。
在这种情况下,什么是可以忍受的?数组或链接列表?
答案 0 :(得分:3)
除了您尝试使用此数据库备份执行的任何操作的相对优点外,您需要考虑的两个问题是“如何在列表/数组中找到实体”和“我是否关心我的内存占用?”< / p>
根据您计划操作数据的方式,通常可以方便地使用某种形式的索引来定位数据实体,这样您就不必遍历数组或线性链表来查找数据
可能需要某种形式的散列来快速定位特定数据实体。您可以使用链接列表实现此功能,或者您可以使用arrayname ['index'],这可能更简单(取决于您计划如何导航和操作所有这些数据)。
您还提到数据量非常大。因此,这不仅强调了索引性能的重要性,而且还表明通过数组或链表将整个批次加载到内存中可能不是最好的方法。
就个人而言,我会使用数据库本身来帮助解决这个问题...克隆到临时表,进行操作,插入和计算。您应该能够将PHP数据库API用于您正在使用的任何数据库,以便轻松完成所有这些操作。
当然,比将表读入内存并直接进行操作要容易得多,我估计:)
然后,您可以为用户提供保留“新”(临时)表格的选项,或取消并保留原始表格。希望这会有所帮助。