我有一张巨大的桌子(1b记录),如下所示: char(3),char(3),date,[6 more int]。
我在程序mysql中寻找一个非常简单的功能但找不到它:删除当前光标位置的行。
我需要做的是:
在伪C#中它很简单:
var b = new List<Row>(1000000000) { ... };
b.Sort():
var r = 0;
var prev_b = b[0];
for (var i = 0; i < b.Count; i++)
{
if (r > mr) { b.RemoveAt(i); i--; }
if (b[i].x != prev_b.x) r = 0;
else r++;
prev_b = b;
}
如果在mysql中无法如此高效地完成它,那么下一个最好的方法是什么?
我的想法(全部作为mysql程序):
想法I:
创意II:
创意III:
哪种想法最好?
现在我用PHP来做这个!如果我可以正确计算,在这个过程中使用3个我的数据副本:ONE是我的数据总是存储在硬盘上(我想直接处理它),THE SECOND是{的结果的缓冲区{1}} PHP函数调用[也许也在内存或硬盘上],而THIRD是实际的PHP数组,它最终使我能够遍历和删除。