Как советовал Фанат, начал активно использовать команду EXPLAIN. И касательно индексов возникли вопросы:
1) Если я ищу (живой поиск при вводе от 4 символов) по полю surname, в котором содержится фамилия, то лучше для этого поля использовать индекс fulltext?
2) Из
статьи на Хабре узнал, что индекс BTREE работает следующим образом:
Например, когда Вы запрашиваете AGE = 18 с BTREE-индексом по колонке AGE MySQL найдёт в таблице первую отвечающую запросу строку и продолжит поиск до тех пор, пока не найдёт первую неподходящую строку — тогда он останавливает поиск, т.к. считает, что дальше ничего подходящего не будет.
Т.е. если у меня есть поле с номерами образцов, которые могут повторяться (не уникальные; это я вообще для примера). И где-то в начале был номер 15, а потом в конце появился такой же номер, то последний он не найдёт?
3) В той же статье говорится:
Итак, мы обсудили как MySQL ищет по индексу, но не определили что же он возвращает после поиска — обычно (если речь не идёт о покрывающих (covering) индексах) получает «указатель строки», который может быть значением первичного ключа (если используется движок InnoDB),
Ключ - это AI, который не может быть пустым и повторяться. Ключевое поле является индексом?
И что такое комбинированный индекс? Это типа этого?
И как быть с ключевым полем? При создании индексов к другим полям добавлять и ключ к ним?