mysql添加键不起作用

时间:2013-07-10 09:39:20

标签: mysql indexing

我有这个问题:

SELECT adressid, adressname FROM kino_adressen WHERE city ='Seattle'

我想创建一个这样的索引

ALTER TABLE <tablename> ADD KEY index_abc(adressid, adressname(40))

但是当我通过使用:

检查它
 EXPLAIN SELECT adressid, adressname FROM kino_adressen WHERE city ='Seattle'

它说

type = ALL
possible keys = NULL
key = NULL 
...rows = 106

任何人都可以提供一些建议如何正确地做到这一点吗?

//编辑: 另一个我不明白的问题:

SELECT DISTINCT
titel,
regie,
darsteller,
filmbild,
kino_filme.filmid,
kino_filme.beschreibung,
fsk,
filmlaenge,
verleih,
sprachfassung
FROM
    kino_filme
LEFT JOIN kino_terminefilme ON (
    kino_terminefilme.filmid = kino_filme.filmid
)
LEFT JOIN kino_termine ON (
    kino_terminefilme.terminid = kino_termine.terminid
)
LEFT JOIN kino_kinos ON (
    kino_kinos.kinoid = kino_termine.kinoid
)
LEFT JOIN kino_adressen ON (
    kino_adressen.adressid = kino_kinos.adressid
)
WHERE
    kino_adressen.adressid = 32038

And the result is like:

为什么kino_termine没有使用任何索引? 我在创建时将其设置为PK,甚至在之后添加了索引,但这些都没有帮助。

1 个答案:

答案 0 :(得分:1)

您在地址上添加了索引,但使用city子句中的where。在city上添加索引然后将使用它。