0

我很困惑地问这个问题。如果有任何疑问,请告诉我。我不知道怎么问。

我在 MYSQL 数据库中有超过 90000 个酒店列表。如果我通常搜索特定城市的酒店,它会从 90000 个结果中得到列表。我想根据特定城市对酒店进行分类。出于这个原因,我通常使用过滤查询,但现在我注意到从 90000 列表中提取结果需要很长时间。我认为如果我搜索纽约市内的酒店会更好,它将从 90000 个列表中返回 56 家酒店,然后过滤价格、评级等将仅从 56 个列表中搜索。MYSQL有什么办法可以拉出酒店。它可能被称为我不知道的虚拟表或视图。请帮我解决。

4

2 回答 2

1

您可以很好地在一个查询中完成所有过滤和排序,但您需要将索引添加到您的基础。

http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

90 000 行:那是一张小桌子。通常处理十倍以上并在 10 毫秒内得到结果。

于 2012-04-27T13:18:11.223 回答
0

好吧,您可能总是使用这样的视图:

CREATE VIEW ny_hotels AS
SELECT price, range, etc FROM hotels WHERE city = 'NY'

...然后像普通表一样查询此视图:

SELECT price, rating FROM ny_hotels WHERE hotel_id = @some_hotel_id

city但是我可以建议在主表中索引列吗?

于 2012-04-27T13:22:29.100 回答