比较数据库搜索方法

时间:2018-03-22 20:36:57

标签: c++ search

我正在写一个c ++类,一个搜索数据库的程序。我编写的代码从作为数据库的.txt文件中读取一条记录(行)。我将记录的值存储在向量中,并将相应列(向量中的元素)的内容与搜索查询进行比较。当我上课时,老师说要为要搜索的列制作索引文件,并将查询与其中一个子文件进行比较。我当然会修改我的代码以适应教师参数。我仍然想知道两者之间有什么区别,如果一个比另一个快。

1 个答案:

答案 0 :(得分:0)

我真的不相信,老师的方法更好。每个文件访问成本,并且成本很高。真正的改进将是最小化文件访问次数。当你逐行读取文件时,你会浪费很多时间。你应该创建一些缓冲区,f.e。 64KB。这将显着提高性能。

具体来说:当我很久以前使用文件时,我使用天真的方法从标准输入中读取数据:

std::cin >> someData;
// Similarly
file >> someData;

<强>都能跟得上即可。
如果你尊重你的时间,不要这样做。 透视:5 MB文件使用天真的方法花了我大约1-2分钟加载。然后,我显着减少了访问次数,加载时间为5秒。这只是一个例子,但你可以意识到它的重要性。