Java 在sql数据库中查询索引表与使用自己的HashMap

Java 在sql数据库中查询索引表与使用自己的HashMap,java,sql,database,performance,h2,Java,Sql,Database,Performance,H2,我有一个java的性能问题 我在sql数据库中有一个很大的索引表(在本例中是H2数据库,但这个问题可以应用于任何sql数据库) 我必须经常按此索引查找此表中的项目 现在我想知道什么更快: 对sql数据库的查询 为我最常使用的字段制作自己的hashmap 有人对此有想法吗?(在创建一些速度测试并为myselve查找之前)。在HashMap中查找速度会更快,但是如果数据发生更改,则需要管理数据和更新缓存,更不用说决定要缓存哪些数据位了 请注意,您的数据库可能会自行进行一些缓存,而普通查询可能会非

我有一个java的性能问题

我在sql数据库中有一个很大的索引表(在本例中是H2数据库,但这个问题可以应用于任何sql数据库)

我必须经常按此索引查找此表中的项目

现在我想知道什么更快:

  • 对sql数据库的查询
  • 为我最常使用的字段制作自己的hashmap

有人对此有想法吗?(在创建一些速度测试并为myselve查找之前)。

在HashMap中查找速度会更快,但是如果数据发生更改,则需要管理数据和更新缓存,更不用说决定要缓存哪些数据位了


请注意,您的数据库可能会自行进行一些缓存,而普通查询可能会非常快地返回数据,甚至不需要经过查询解析器,更不用说访问磁盘了。

在HashMap中查找会更快,但如果数据发生更改,您将有管理数据和更新缓存的开销,更不用说决定要缓存哪些数据位了


请注意,您的数据库可能会自行进行一些缓存,而常见的查询可能会非常快速地返回数据,甚至不需要经过查询解析器,更不用说访问磁盘了。

您应该能够在1-10毫秒内完成索引SQL查询,并且在HashMap上的查找应该不到1微秒


如果您已经有一个SQL数据库,我只会使用它,除非您知道必须在内存中复制数据。

您应该能够在1-10毫秒内完成一个索引SQL查询,并且在HashMap上的查找应该少于1微秒


如果你已经有一个SQL数据库,除非你知道必须在内存中复制数据,否则我只会使用它。

使用你自己的HashMap来维护会让你的生活变得艰难 如果内存中容纳的条目太多怎么办 如果您的应用程序重新启动怎么办? 如果您还需要搜索一个您没有想到的参数,该怎么办? 如果需要像param1=val1和param2=val2这样搜索,该怎么办

如果您维护正确的索引集,DB将提供这些现成的东西。
而且,大多数现代数据库都将频繁查询的数据保存在缓存中,所以速度应该更快。

使用自己的HashMap进行维护将使您的生活变得艰难 如果内存中容纳的条目太多怎么办 如果您的应用程序重新启动怎么办? 如果您还需要搜索一个您没有想到的参数,该怎么办? 如果需要像param1=val1和param2=val2这样搜索,该怎么办

如果您维护正确的索引集,DB将提供这些现成的东西。
大多数现代数据库都将频繁查询的数据保存在缓存中,因此速度应该更快。

在这种情况下,数据不会改变。然而,缓存选项很有意思,可以确定H2数据库是否使用了缓存。在这种情况下,数据不会改变。然而,缓存选项很有意思,可以确定H2数据库是否使用这个选项。