连接表上的MySQL索引

时间:2012-10-12 16:20:17

标签: mysql join indexing

我有一个连接表,我只想为连接后生成的表编制索引。我已经阅读了很多内容,所以我理解索引语法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%';

感谢您的时间。

1 个答案:

答案 0 :(得分: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%';