[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Индексация в mySQL
HardWoman
Интересует физика процесса, собственно начинка действия.

Предполагаю так. При индексирования некого поля где то внутри базы в рабочей таблице индексации сопоставляются физические адреса ячеек памяти.

Кто может просветить в вопросе подробнее - или ссылку почитать.





Спустя 2 часа, 24 минуты, 46 секунд (4.01.2010 - 10:26) glock18 написал(а):
Суть такая, что любой индекс - это отдельный файл. Записи в этом файле отсортированы, разумеется, а каждая запись - это что-то типа PK + значение индексируемого поля. обычно если у таблицы не создан PK, то mysql создает внутренний - именно PK и используется в индексных файлах для ссылки на таблицу. Вот собственно так. Пусть поправят если насчет PK ошибся.

Спустя 2 часа, 54 минуты (4.01.2010 - 13:20) VolCh написал(а):
Прежде всего надо разделить InnoDB и MyISAM
в MyISAM всё довольно просто, насколько я знаю:
  • все индексы одной таблицы хранятся в одном файле
  • в индексах хранятся пары KEY->номер записи (4 байта), по номеру записи вычисляется смещение в собственно таблице
  • PK по сути обычный UNIQUE индекс
  • практически всегда используется не просто последовательная отсортированная запись в индексе, а в виде сбалансированного дерева (B-Tree), что ускоряет поиск


В случае InnoDB glock18 описал очень грубо, там всё намного сложнее, начиная с того, что есть кластерный индекс (обычно это примари, но может быть и уникальный, и автоматически созданный), а есть вторичные. Вторичный хранит значения кластерного, а вот кластерный хранится на диске вперемешку с данными, для уменьшения количества операций чтения и позиционирования головки диска (если нашли нужное поле в индексе, то, скорее всего, он прочиталось в кеш вместе с идексом, если даже нет, то значит в соседнем секторе)

Спустя 10 минут, 51 секунда (4.01.2010 - 13:31) HardWoman написал(а):
VolCh А где можно об этом почитать более подробно?

Спустя 15 минут (4.01.2010 - 13:46) VolCh написал(а):
Документация к MySQL не устраивает? Правда переводов на русский 4+ мне не встречалось.


_____________
Сложные иерархии рулят!!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.