Применение индексов
Применение индексов
Теперь, когда ясно, что можно требовать от индексов, настало время разобраться с тем, какую роль они играют в базе данных. Индексы используются в трех основных случаях:
* Ускорение выполнения запросов. Индексы создаются для полей, которые используются в условиях поиска SQL-запросов.
* Обеспечение уникальности значений в полях; Ограничение первичного ключа (о которых рассказывалось в главе "Таблицы. Первичные ключи") требует, чтобы во всей таблице не нашлось двух одинаковых значений полей, входящих в первичный ключ. Чтобы выполнить это условие, необходимо при каждой вставке новой записи производить поиск такого же значения, которые будет вставлено. Для поиска записи используется особая разновидность индекса - уникальный индекс (см. ниже).
* Обеспечение ссылочной целостности. Ограничения внешних ключей Foreign key (которые рассмотрены в главе "Ограничения базы данных") используются для проверки того, чтобы вставляемые в таблицу значения обязательно существовали в другой таблице. При создании внешнего ключа автоматически создается индекс, который применяется как для ускорения запросов, использующих соединение таблиц, так и для проверки условий внешнего ключа.
Вот вкратце и все возможные применения индексов. Теперь мы рассмотрим особенности каждого случая более подробно и ответим на ряд часто возникающих вопросов, связанных с применением индексов.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
4.1.3 Освобождение индексов
4.1.3 Освобождение индексов В том случае, когда ядро освобождает индекс (алгоритм iput, Рисунок 4.4), оно уменьшает значение счетчика ссылок для него. Если это значение становится равным 0, ядро переписывает индекс на диск в том случае, когда копия индекса в памяти отличается от
Сравнение индексов
Сравнение индексов Изучая поисковые индексы «Яндекс» и Google с помощью операторов inurl: и site, мы можем найти разницу в количестве проиндексированных страниц по сайту в целом и по каждому кластеру в частности. Это самая простая и эффективная проверка сайта на ошибки,
Ускорение выполнения запросов с помощью индексов
Ускорение выполнения запросов с помощью индексов Выше описано, что применение индексов может значительно ускорить выполнение запросов. Это действительно так для большинства случаев, но есть и определенные оговорки. Сначала ответим на вопрос, часто возникающий у тех,
Обеспечение ссылочной целостности с помощью индексов
Обеспечение ссылочной целостности с помощью индексов В определении индекса имеется еще одна опция - UNIQUE. Если ее указать, то индекс позволит заносить в таблицу только уникальные значения. Фактически это служит основой для реализации уникальных ключей (UNIQUffi KEY).
Оптимизация производительности индексов
Оптимизация производительности индексов В названии этого раздела можно обнаружить некоторый парадокс - индексы, как говорилось выше, служат для того, чтобы ускорить выполнение запросов, и оказывается, что их самих надо тоже оптимизировать! Но что делать (такова жизнь) -
Статистика страниц индексов
Статистика страниц индексов Чтобы получить статистику по страницам индексов, необходимо либо указать при запуске gstat ключ -index, либо запустить с ключом -all. Статистика по одному индексу выглядит следующим образом:CUSTOMER (33)Index CONTACT_IDX (5)Depth: 2, leaf buckets: 32, nodes: 20005Average data length: 1.00,total
Имена индексов ограничений
Имена индексов ограничений Использование явных планов в Yaffil в триггерах и процедурах существенно упрощается благодаря возможности именования индексов, автоматически создаваемых сервером для ограничений первичных, внешних ключей и ограничений уникальности. В версиях
Определение индексов и первичного ключа
Определение индексов и первичного ключа Теперь, когда вы создали базовую таблицу, осталось определить индексы. Индекс (index) - это атрибут, который можно присвоить полю, чтобы облегчить для процессора баз данных выборку данных на основе информации, хранимой в этом поле.
2.4.4. Создание таблиц и индексов в Falcon
2.4.4. Создание таблиц и индексов в Falcon Falcon поддерживает все стандартные типы данных столбцов, обеспечиваемые MySQL.Чтобы создать таблицу, которая использует Falcon, примените опцию ENGINE = Falcon в инструкции CREATE TABLE:CREATE TABLE names (id INT, fname VARCHAR (20),lname VARCHAR (20)) ENGINE=FalconИндексы могут быть
4.6.1. Создание пространственных индексов
4.6.1. Создание пространственных индексов MySQL может создавать пространственные индексы, использующие синтаксис, подобный аналогичному для создания регулярных индексов, но расширенный с ключевым словом SPATIAL. В настоящее время пространственные столбцы, которые
5. Понятие индексов
5. Понятие индексов Создание ключей в базовых отношениях автоматически связано с созданием индексов.Дадим определение понятия индекса.Индекс – это системная структура данных, в которой размещается обязательно упорядоченный перечень значений какого-либо ключа со
2.2.4 Поддержка фрагментации таблиц и индексов
2.2.4 Поддержка фрагментации таблиц и индексов INFORMIX-OnLine DS поддерживает горизонтальную локальную фрагментацию таблиц. Это такой способ хранения таблицы, когда совокупность ее строк разбивается на несколько групп согласно некоторому правилу, и эти группы хранятся на
Импорт существующих индексов
Импорт существующих индексов Не импортируйте "первичные индексы" таблиц при миграции из другой СУБД. Есть две важные причины отказаться от таких индексов.* Многие существующие системы используют иерархические структуры индексов для реализации ссылочной целостности.
Просмотр индексов
Просмотр индексов Для просмотра всех индексов, определенных в текущей базе данных, используйте в isql команду SHOW INDEX:* чтобы просмотреть все индексы, определенные для конкретной таблицы, используйте команду:SHOW INDEX имя-таблицы;* для просмотра информации конкретного индекса
Действия по обслуживанию индексов
Действия по обслуживанию индексов Индексы являются двоичными структурами, которые могут стать разбалансированными после многих изменений базы данных, особенно если вы пренебрегаете общим обслуживанием базы данных. Индексы могут быть сделаны сбалансированными[55]