1

最近、データベースのいくつかのクエリで問題が発生しました。これは、データベース テーブルの 1 つが 50,000 行から 1,000,000 行、2,000,000 行に拡張されたためです。

テーブルbooksには 2,000,000 冊の本のレコードがあり、本のランキングから本のサイズまで、あらゆる種類の情報が含まれています。

簡単なクエリを実行してみました...

SELECT isbn FROM books WHERE rank < 100000

10分間待った後、クエリが停止し続けたため、クエリを終了する必要がありました.他のテーブルをクエリするときはこの問題は発生しないため、問題はテーブルのサイズにあると思います.

インデックス作成を読み始めたので、これが私の状況を改善する最善の方法であるかどうか、そうでない場合はどうなるかを知りたいです。

4

2 に答える 2

2

列にインデックスを付けて、rankそれが飛ぶのを見てください

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

MySQL テーブルにインデックスを追加するにはどうすればよいですか?

于 2013-03-14T16:59:15.227 に答える
1

ランク列にインデックスを追加することは、私が最初に試みることです。

ただし、200万行のテーブルは実際にはそれほど大きくないと見なされ、データベースが10分以内に200万行のテーブルスキャンを実行できなかったのは奇妙なことです。クエリ内の他のテーブルを結合することもできます。

何行返されると思いますか?遅延がデータベースサーバーによるものであり、チェーンの他の場所によるものではないことを確信していますか?Webクライアントで200,000行のhtmlテーブルをレンダリングするのが好きですか?

于 2013-03-14T17:14:26.097 に答える