У меня есть стол с примерно 1000 городами. Иногда мне нужно искать по названию города, поэтому я решил сделать его индексом. Какова была бы наилучшая практика для определения длины индекса? 6 кажется оптимальным выбором, потому что почти не будет дубликатов.Индексная длина поля для названия города
Пример таблицы:
cityID | cityName | countyID
1 | Bethlehem | 30
2 | Blairstown | 38
3 | Bloomfield | 32
4 | Bloomingdale | 34
5 | Bloomsbury | 30
6 | Bogota | 31
7 | Boonton | 33
8 | Botsford | 44
9 | Bound Brook | 35
10 | Branchburg | 35
11 | Branchville | 36
12 | Brantwood | 32
13 | Briarcliff Manor | 25
CityID - Первичный ключ
countyID - Ключ
CityName (6) - Key
Правильно ли я делаю это?
Когда я попытался запустить
EXPLAIN SELECT *
FROM 'CITIES'
WHERE 'cityName' = 'Branchburg'
Я получил следующие результаты:
id: 1
select_type: SIMPLE
table: CITIES
type: ref
possible_keys: cityName
key: cityName
key_len: 20
ref: const
rows: 2
Extra: Using where
не должны "key_len" быть 6?
Что такое кодировка столбца? Это UTF-8? –
Да, это utf8 – Yev