2011-04-24 64 views
1

我得到了以下数据库进行优化:
http://sourceforge.net/projects/zips/ZIP检索 - 如何使用索引

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

我使用Spring> Hibernate> MySQL设置。

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

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

+0

此表的WorldCities没有邮政编码字段。我错过了什么吗?你打算从城市/州获取邮政编码吗? – CoolBeans 2011-04-24 17:48:43

回答

1

我会先对查询运行一个SQL解释并查看SQL的开销。之后,你想看看数据库如何匹配行。它做过全表扫描还是进行索引匹配(并且索引匹配有变化)?除非表中只有几百行,否则您总是希望避免全表扫描。在这种情况下,数据库可能决定进行全表扫描。

一旦你有了这些信息,你就可以确定你的桌子上需要什么索引。然后,在数据表增长更多的时间段内,您想要再次运行表扫描以查看指数是否仍然良好。

这是一个很好的tutorial让你开始。

希望这会有所帮助!

+0

我对hibernate并不熟悉。一般来说,我通过使用解释和与DBA合作来创建索引本身。 – CoolBeans 2011-04-24 18:17:22

+0

理想情况下,手动创建的SQL与一个hibernate生成的SQL应该没有区别。你可以跟踪hibernate生成的SQL并做一个解释,看看它是否在做索引匹配?如果发生这种情况,我认为你在这方面很好。 – CoolBeans 2011-04-24 19:33:18

+0

尽管我对hibernate并不十分熟悉,但据我所知,查询优化器应该在需要时使用索引。 – CoolBeans 2011-04-24 19:36:32