0

私は質問をすることに混乱しています。ご不明な点がございましたら、お知らせください。どう聞いたらいいのかわからない。

MYSQL データベースには 90000 を超えるホテル リストがあります。通常、特定の都市のホテルを検索すると、90000 件の結果からリストが表示されます。特定の都市に対してホテルを並べ替えたいと思います。このため、通常はフィルター クエリを使用しますが、90000 件のリストから結果を引き出すのに時間がかかっていることに気付きました。ニューヨーク市内のホテルを検索すると、90000 件のリストから 56 件のホテルが返され、その後、価格、評価などのフィルタリングが 56 件のリストからのみ検索されます。MYSQL でホテルを引き出す方法はありますか。わからない仮想テーブルまたはビューと呼ばれる場合があります。解決するのを手伝ってください。

4

2 に答える 2

1

すべてのフィルタリングと並べ替えを 1 つのクエリで実行することもできますが、ベースにインデックスを追加する必要があります。

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

90 000 行 : これは小さなテーブルです。通常は 10 倍の処理を行い、10ms で結果が得られます。

于 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 に答える