SQL查询可以更快地搜索或使用哈希表

时间:2010-12-12 16:43:17

标签: algorithm data-structures

如果我在数据库中查找记录,是否正在编写SQL查询以更快地搜索数据库,或者是将数据从数据库读入哈希表,然后在O(1)时间内更快地搜索? 这个问题适用于过去遇到此类问题的有经验的程序员。

5 个答案:

答案 0 :(得分:2)

如果您知道要搜索的行或列的主键已编入索引,那么“使用SQL执行检索将会更快。特别是如果您的表不适合内存。”

答案 1 :(得分:1)

对数据库进行直接sql查询显然比首先将所有记录读入哈希表并从中进行搜索要快得多。这不仅可以节省您将所有记录首先加载到哈希表中然后搜索它们的时间。 2,它还将节省大量内存,哈希表将消耗。

我遇到过这种情况。希望这对你有所帮助!

答案 2 :(得分:0)

Sql Server数据库比Hash-table更快更好。 背后的一个重要原因。 哈希表从辅助存储中读取数据一次,然后加载到内存中。 现在,很容易确定会发生什么? 通过以巨大的方式存储数据,系统将变得缓慢。它很难操纵和检索记录.....

答案 3 :(得分:0)

尽管如此,与哈希表相比,DBMS被认为是非常方便的环境。如果您试图获得包含数千条记录的结果,那么您无需创建索引。这取决于需要。因此,通过三层应用程序从远程计算机获得答案非常容易。它会关注行数,IO速度等。

答案 4 :(得分:-1)

如果SQL表未编入索引,则必须使用基准测试来查找答案。由于存在很多因素,例如行数,IO速度,网络速度(如果数据库在移除机器上),很难只回答问题

另一方面,索引表是更好的选择。只是,将DBMS的工作留给DBMS。