在超过3密耳的数据库中搜索。项

时间:2009-10-05 09:02:31

标签: mysql

我在酒店预订网站上使用Geonames数据库。该数据库有两个表,一个用于国家,一个用于超过3密耳的城市。条目。如果我尝试获取特定国家/地区的所有城市,则查询速度太慢。我想是因为我没有定义任何索引。

countries表格包含以下字段:

  • iso_alpha2(国家代码)
  • 名称
  • 大陆
  • 人口

cities表包含以下字段:

  • 名称
  • asciiname
  • alternate_names
  • 国家

cities表中的“country”字段与countries表中的“iso_alpha2”字段相关。

如何加快查询速度?

P.S。我正在使用MySQL。

2 个答案:

答案 0 :(得分:1)

您需要在WHERE子句中使用的字段上添加索引(在您的情况下,它似乎是 country 字段)。

编辑:还有一件事 - 如果你在WHERE子句中有多个条件,你需要添加一个包含该子句中使用的所有字段的索引(在字段上有单独的索引)工作)。但是,在您的情况下,我认为 country 字段中的索引应该这样做。

答案 1 :(得分:1)

对于此查询,您只需要cities表:

select name from cities where country = 'US'

此查询将受益于国家/地区的索引。