Руководство по языку программирования PHP
 

PCRE
 

PHP и mysql

Индексы в mysql

Индексирования таблиц применяется для уменьшения времени поиска данных. Без индексов поиск происходит простым перебором всех значений таблицы, что занимает довольно продолжительное время.

В mysql таблицах используются следующие типы индексов:

  • Первичный ключ
  • Уникальный индекс
  • Обычный индекс
  • Полнотекстовый индекс

Кроме перечисленных выше индексов также используется полнотекстовый индекс, но в этой статье он не рассматривается.

Первичный ключ

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

1. таблица не может иметь только один уникальный ключ;

2. значение ключа должно быть уникально в пределах таблицы;

3. первичный ключ не может иметь тип NULL.

Пример создания первичного ключа:

Пример 1:

Создание первичного ключа при создании таблицы в описании полей


$connection = new mysqli("localhost","root","",'mybase');
$query = "create table auto (model varchar(20), id_number INT primary key)";
$result = $connection->query($query);

?>

Пример 2:

Создание первичного ключа после описания полей


$connection = new mysqli("localhost","root","",'mybase');
$query = "create table auto (model varchar(20), id_number INT, primary key(id_number))";
$result = $connection->query($query);

?>

Пример 3:

Если в качестве первичного ключа выступает текстовое поле, то нужно указывать в скобках количество символов участвующих в индексации.


$connection = new mysqli("localhost","root","",'mybase');
$query = "create table auto (model varchar(20), id_number INT, primary key(model(10)))";
$result = $connection->query($query);

?>

Пример 4:

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


$connection = new mysqli("localhost","root","",'mybase');
$query = "create table auto (model varchar(20), id_number INT, primary key(model(10),id_number))";
$result = $connection->query($query);

?>

Пример 5:

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


$connection = new mysqli("localhost","root","",'mybase');
$query = "ALTER table auto ADD CONSTRAINT PRIMARY KEY (id_number)";
$result = $connection->query($query);

?>

Обычный и уникальный индексы

Кроме первичного индекса таблица также может содержать обычные и уникальные индексы. В отличии от первичного индекса этих индексов может быть несколько. Отличие обычного индекса от уникального состоит в том, что в уникальном индексе не может быть одинаковых значений.

Объявление обычных индексов осуществляется при помощи ключевых слов key или index. Если же нужно объявить уникальный индекс, то перед key или index ставится ключевое слово unique.

Пример 6:

Создаем уникальный индекс


$connection = new mysqli("localhost","root","",'mybase');
$query = "create table auto (model varchar(20), id_number INT, unique key(model))";
$result = $connection->query($query);

?>

Пример 7:

Добавляем уникальный индекс в уже в существующую таблицу.


$connection = new mysqli("localhost","root","",'mybase');
$query = "create unique index model on auto(model)";
$result = $connection->query($query);

?>

Удаление индексов

Удаление индексов осуществляется при помощи команды drop index, при помощи ее удаляются любые индексы.

Пример 8:


$connection = new mysqli("localhost","root","",'mybase');
$query = "drop index model on auto";
$result = $connection->query($query);

?>

 

- Создание базы данных
- Создание таблиц
- Индексы в mysql
- Добавление данных
- Загрузка данных из файла
- Выборка данных
- Сортировка данных в sql запросе
- Использование функций в sql запросе
- Группировка данных
- Объединение sql запросов
- Сохранение sql запроса в файл
- Удаление данных
- Обновление данных
- Добавление и удаление столбцов
- Перестановка столбцов
- Изменение типов столбцов
- Переименование названия таблицы и столбцов
- Добавление и удаление индексов