我突然想知道像mysql这样的数据库 ,数据也是存文件的。假若一张表数据有对应的文件有十个G那么大,mysql是怎么处理底层文件实现查找插入的。
然后就是撇开数据库不谈,代码上有什么方法或理论能处理这种数据比内存还大问题。请大致给讲讲思路
可以分块放入,数据一共10g,但是每条数据又不超过内存大小。
好比让你抄书,你需要把要抄的书先背下来么?你只要看几个字,记住几个字,写下来,再看几个字,再写几个字,如此这样就可以了。
比如说如下伪代码:
file f = fileopen(10gb的文件);
string s;
while (f.readline(s))
{
insert into table(field) value(s);
}
只需要一个文件指针和能存储1行数据的字符串s
就可以源源不断插入数据库,文件里如果有几千万行,完全可能超过10G,而使用的内存只要几十kb足够了