1

結合後に生成されるテーブルに対してのみインデックスを作成したい結合テーブルがあります。私はそこにあるものをたくさん読んだので、インデックス構文を理解していCREATE INDEX my_indexますが、結合テーブルのみのインデックスを作成する方法について理解できません。私はちょうど構文を理解することはできません

次の表を考えます (注: これは単なる例です)。

CREATE TABLE books(
    id INT,
    title VARCHAR(50),
    author_id INT
);

CREATE TABLE authors(
    id INT,
    name VARCHAR(50)
);

次のクエリにインデックスを付けるには、構文はどのように機能しますか? このプロジェクトの目的のために、書籍または著者のいずれかのインデックスを保持することは賢明ではないかもしれません。両方のテーブルが頻繁に更新および挿入されるためです。頻繁に編集される上で作成されるとインデックスがすべてを遅くすることを理解しています (間違っていれば訂正してください)。データ:

 SELECT * FROM authors, books WHERE books.author_id = authors.id AND books.title LIKE '%Great%';

お時間をいただきありがとうございます。

4

1 に答える 1

1

のような本の索引を作成する

    CREATE TABLE books(


id INT,


title VARCHAR(50),

    author_id INT,
KEY idx_author_id ('author_id')
);

クエリが最適化されているかどうかについては、説明ツールを確認してください

たとえば。

EXPLAIN SELECT * FROM authors, books WHERE books.author_id = authors.id AND books.title LIKE '%Great%';
于 2012-10-12T16:24:19.303 に答える