【问题标题】:ZIP retrieval from database - how to optimize it with indexes从数据库中检索 ZIP - 如何使用索引对其进行优化
【发布时间】:2011-08-11 22:35:03
【问题描述】:

我有以下数据库:
http://sourceforge.net/projects/zips/

我想做的是优化它。基本上,当用户输入邮政编码时,我想检索 Long 和 Lat。

我使用 Spring > Hibernate > MySQL 设置。

问题是如何配置 MySQL 和 Hibernate 以加快检索速度。我对索引不太熟悉,所以很少解释也会很有帮助。

理想情况下,如果我可以创建优化(压缩)数据库结构而不是 MySQL 表,那将是理想的,因为这将仅用于读取。

【问题讨论】:

  • 此表WorldCities 没有邮政编码字段。我错过了什么吗?您是否打算从城市/州获取邮政编码?

标签: java mysql hibernate zip indexing


【解决方案1】:

我将首先对查询运行 SQL 解释并查看 SQL 的成本。之后,您想查看数据库在行上的匹配情况。它是进行全表扫描还是进行索引匹配(并且索引匹配存在变化)?您希望始终避免全表扫描,除非您的表中只有几百行。在这种情况下,数据库可能会决定进行全表扫描。

一旦您掌握了这些信息,您就可以确定您的表需要什么索引。然后在一段时间内,随着表中数据的增长,您希望再次运行表扫描以查看索引是否仍然良好。

这里有一个很好的 tutorial 可以帮助您入门。

希望这会有所帮助!

【讨论】:

  • 我不熟悉hibernate。一般来说,我会使用解释并与 DBA 一起创建索引本身。
  • 理想情况下,您手动创建的 SQL 与 hibernate 生成的 SQL 之间应该没有区别。你能跟踪hibernate生成的SQL并解释一下它是否在做索引匹配吗?如果发生这种情况,我假设你在这方面做得很好。
  • 虽然我对休眠不是很熟悉,但据我所知,查询优化器应该在需要时找出使用索引。
猜你喜欢
  • 2012-04-09
  • 1970-01-01
  • 2011-08-30
  • 1970-01-01
  • 2021-10-06
  • 2013-02-21
  • 2016-08-25
  • 1970-01-01
  • 2014-01-12
相关资源
最近更新 更多