MySQLИндексы и ключи


Синтаксис

  • - Создать простой индекс

    CREATE INDEX index_name ON table_name ( column_name1 [, column_name2 , ...])

  • - Создать уникальный индекс

    CREATE UNIQUE INDEX index_name ON table_name ( column_name1 [, column_name2 , ...]

  • - Индекс падения

    DROP INDEX index_name ON tbl_name [ algorithm_option | lock_option ] ...

    algorithm_option: ALGORITHM [=] {DEFAULT | INPLACE | COPY}

    lock_option: LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}

замечания

Концепции

Индекс в таблице MySQL работает как индекс в книге.

Допустим, у вас есть книга о базах данных, и вы хотите найти некоторую информацию о хранилище. Без индекса (без какой-либо другой помощи, такой как оглавление) вам придется проходить страницы один за другим, пока не найдете тему (это «полное сканирование таблицы»). С другой стороны, индекс имеет список ключевых слов, поэтому вы проконсультируетесь с индексом и увидите, что хранилище упомянуто на страницах 113-120, 231 и 354. Затем вы можете напрямую переходить на эти страницы без поиска (это поиск с индексом, несколько быстрее).

Конечно, полезность индекса зависит от многих вещей - несколько примеров, используя сравнение выше:

  • Если у вас есть книга о базах данных и индексировано слово «база данных», вы можете увидеть, что это упоминается на страницах 1-59, 61-290 и 292-400. Это много страниц, и в таком случае индекс не очень помогает, и, возможно, быстрее будет проходить страницы один за другим. (В базе данных это «низкая избирательность».)
  • Для 10-страничной книги нет смысла делать индекс, так как вы можете получить 10-страничную книгу с префиксом 5 страниц, что просто глупо - просто сканируйте 10 страниц и сделайте с ними ,
  • Индекс также должен быть полезен - обычно нет смысла индексировать, например, частоту буквы «L» на странице.

Индексы и ключи Связанные примеры