0

さて、mysqlのインデックス作成。インデックス作成は、WHERE 句で使用される各行に一意の ID を持つことに他なりませんか?

テーブルにインデックスを作成するとき、プロセスによってテーブルに情報が追加されますか? たとえば、別の列または値がどこかにあります。

値を取得するときにインデックス作成がオンザフライで行われますか?それとも、値は挿入関数や更新関数のようにテーブルに配置されますか?

mysql のインデックス作成を明確に説明するための詳細情報をいただければ幸いです。また、mysql のドキュメントへのリンクを単に配置しないでください。混乱を招くため、専門家から個人的な回答を得ることをお勧めします。

最後に、インデックス作成が mysql に 2 つの値の間の値を探すように指示することと異なるのはなぜですか。例: WHERE create_time >= 'AweekAgo'

テーブルの 1 つが 220,000 行以上あり、非常に単純な mysql select ステートメントで値を返すのに 1 分以上かかるため、質問しています。インデックス作成によってこれが高速化されることを願っています。

ありがとうございます。

4

3 に答える 3

2

求めているものを読んだり検索したりする努力をしなかったため、あなたは反対票を投じられました。グーグルで簡単に検索すると、データベースインデックスの長所と短所がわかります。StackOverflowに関連する質問があります。そのような質問はたくさんあると思います。

専門用語を単純化するために、専門分野に応じて番号が付けられた棚に配置すると、図書館で本を見つけるのが簡単になります。あなたは誰かに特定の場所に行って本を選ぶように簡単に言うことができます-それはインデックスがすることです

別の例:アルファベット順に並べられた入場リストを想像してください。名前がZで始まる場合は、AからYにスキップして、Zに到達します。そうでなければ、あなたは検索して検索する必要があり、注意深く見ないとそれを見つけることさえできないかもしれません

于 2012-06-21T17:56:22.647 に答える
1

データベースインデックスは、テーブル内の操作の速度を向上させるデータ構造です。インデックスは1つ以上の列を使用して作成でき、レコードへのアクセスの高速ランダムルックアップと効率的な順序付けの両方の基礎を提供します。

次のようにインデックスを作成できます。

CREATE INDEX index_name
ON table_name ( column1, column2,...);

より複雑なデータベースで作業している可能性があるため、いくつかの簡単なルールを覚えておくとよいでしょう。

  • インデックスは挿入と更新の速度を低下させるため、頻繁に更新される列で慎重に使用する必要があります。

  • インデックスは、where句とorderbyを高速化します。

詳細については、以下をお読みください。

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

http://www.tutorialspoint.com/mysql/mysql-indexes.htm

于 2012-06-21T17:53:56.690 に答える
0

ハッシュ、トライ、空間インデックスなど、多くのインデックスがあります。値によって異なります。ほとんどの場合、ハッシュと二分探索木です。派手なものは高価である可能性が高いため、本当に派手なものはありません。

于 2012-06-21T17:57:23.300 に答える