我在间隔的基础上存储数据(gps位置),我不希望数据库膨胀,所以我定义了一个它可以上升到的最大行数,然后每次我插入一个新的行时,它只是简单地删除最旧的行。
现在,一位数据库专家看着我的代码,他说这种方式效率不高,因为从数据库中删除一行是最耗费时间/内存/过程的操作,我应该不惜一切代价避免它。
他说我应该做的是,在我接触到MAX之后,重温一下最老的一行(更新)。(所以每次都是从上到下)
这意味着我需要保存一个单独的“标题”表,以保存当前指向最旧行的指针,并在每次插入时更新它(如果应用程序崩溃,我不想丢失它)。它真的更有效率吗?还有没有其他更有效的方法呢?
发布于 2012-03-07 03:34:22
把你的数据库表变成一个环形缓冲区是愚蠢的。如果你真的想使用这种方法...
不要使用数据库,只需使用数据文件和IO
就没关系。
-gps.dat
[Ring Pointer]
[Time Stamp][Latitude][Longitude]
[Time Stamp][Latitude][Longitude]
...
[Time Stamp][Latitude][Longitude]当您想要添加记录时:
https://stackoverflow.com/questions/9579718
复制相似问题