Здавалка
Главная | Обратная связь

Понятие индекса и индексирования. Преимущества. Правила отбора столбцов для инд.. Типы индексов. Способы задания индексов.



Индексирование-наиболее важный инструмент ускоренной работы. Индексы удобны при создании запросов как одной так и к нескольким таблицам. Воднотабличном запросе (без использования индексов)кол-во значений анализируемых во время запроса=кол-ву строк таблицы.

В запросах с несколькими таблицами кол-во обращений=произведению колиочества строк каждой из таблиц.Пример:Если имеется 3таблицы с кол-вом записей 1000 в каждой.при выборке нужной записи из 3х неиндексированных таблиц кол-во комбинаций соответствует 1000*1000*1000=1миллиард

Выполнение такого же запроса к неиндексированным таблицам потребует 1000 комбинаций т.е запрос будет выполняться в млн раз быстрее.

Правила отбора столбцов для индексирования:

1.необходимо индексировть искомые, сортируемые и группируемые, а не выбираемые столбцы(помле WHERE или ORDER BY или GROUP BY).

2.Использовать короткие индексы

3.как можно эффективнее использовать левый крайний префикс.

Если таблица индексируется по нескольким столбцам,т.е создается индекс по 3м столбцам, то 1ый столбец в индексе называется крайним левым индексом.именно по нему сортируются и выбираются зписи из индекса.

Пример:в таблице проиндексированной по 3м столбцам ФИО строки отсортированы в порядке фамилия, а также автоматически отсортированы в порядке фамилия имя и фамилия имя отчество. Именно по таким комбинациям можно использовать индекс. Индекс не будет задействован при поиске значений кот.не удовлетвооряют правилу левого крайнего,т.е при поиске имя отчества;отчество;фамилия и отчество.

Способы задания индексов.

1.таблицу можно индексировать по одному или нескольким столбцам одновременно.индексу может быть задан режим(повтор значений) или только уникальные значения.

2.строковый тип можно индексировать по первым 3 символам слева ENUM SET

3.Таблицы могут содержать для MyISAM и InnoDB.

СУБД MySQL позволяют создавать несколько типов индексов:

1.обычный(неуникальный)индекс INDEX(KEY)-позволяет индексировать столбцы с повторяющ.значением в них.

2.уникальные индексы UNIQUE-несколько на таблицу не содержащих повтор значений, но может содержать пустые значения и PRIMАRY KEY-1 на таблицу не допускает повторяющихся и пустых значений..

3.Индекс типа FULL TEXT Для табл MyISAM кот используется для поиска по контексту.

Индексы можно создавать:

1.С помощью оператора CREATE TABLE ИМЯ_ТАБЛИЦЫ(описание столбцов таблицы….)

INDEX ИМЯ ИНДЕКСА(список индексированных столбцов)

UNIQUE ИМЯ ИНДЕКСА

PTIMARY KEY

FULL TEXT

2. с помощью оператора ALTER TABLE для уже существующих таблиц

ALTER TABLE имя таблицы add index, add unique, add primary key.

3. с помощью оператора CREATE INDEX

CREATE UNIQUE INDEX = ИМЯ ИНДЕКСА

INDEX= ИМЯ ИНДЕКСА

FULL TEXT INDEX= ИМЯ ИНДЕКСА

 

ON имя_таблицы(список индексированных столбцов)







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.