数组或链表


Array or Linked List

我想对我的数据库进行备份,但是在写入CSV文件之前需要进行一些数据操作。
我的想法是先创建一个数组或链表格式的数据(主要是插入和计算特定的项目,包括插入在数组的中间,顺序是重要的),然后只是写数组项目到文件。
每个项目都有相同的字段。数据量真的很大。
在这种情况下,什么是更可取的?数组还是链表?

先不谈这种数据库备份的相对优点,您需要考虑的两个问题是"我如何定位列表/数组中的实体"answers"我是否关心我的内存占用?"

根据您计划如何操作数据,通常能够使用某种形式的索引来定位数据实体是很方便的,这样您就不必搜索数组或线性链表来查找它。

可能需要某种形式的哈希来快速定位特定的数据实体。你可以用链表来实现它,或者你可以直接使用arrayname['index'],这可能更简单(取决于你计划如何导航和操作所有这些数据)。

您还提到数据量非常大。因此,这不仅强调了索引性能的重要性,而且还表明,通过数组或链表将整个批次加载到内存中可能不是最好的方法。

就我个人而言,我会使用数据库本身来帮助解决这个问题…克隆到一个临时表,用它进行操作、插入和计算。您应该能够使用PHP数据库API,无论您使用的是什么数据库,都可以相当轻松地完成所有这些。

当然比把表读入内存然后直接修改要容易得多,我认为:)

你可以让用户选择保留"新"(临时)表,或者取消并保留原来的表。