Індекси в mysql

Індекси в MySQL

У попередніх статтях я часто згадував про індекси в MySQL. і я обіцяв, що скоро про них розповім. Так ось, цей час настав, і сьогодні Ви дізнаєтеся про індексах MySQL, про їх призначення і про те, як їх створювати.

Індекси використовуються для прискорення вибірки даних з таблиць бази даних. По суті справи, індекс в MySQL - це сортування певного поля в таблиці. Тобто якщо поле зробити індексом, то вся таблиця буде відсортована по цьому полю. Чому це вигідно?

Відео: Індекси.Унікальние значенія.Внешніе і первинні ключі в MySQL

Припустимо, в нашій таблиці знаходиться 1000000 записів. У кожного запису є унікальний ідентифікатор ID. І, допустимо, нам треба витягнути запість з ID = 530124. Якщо немає індексу, то MySQL буде по черзі перебирати всі записи в таблиці, поки не знайде потрібну. У гіршому випадку, він буде змушений перебрати 1000000 записів. Зрозуміло, це буде дуже довго. А якби був індекс (тобто поле було б відсортовано), то вибірка записи сталася б в середньому в 100 000 раз швидше. Як бачите, вигода очевидна.

Однак, індекси мають ваду, який не дозволяє робити індексом кожне поле таблиці. Фактично, індекс - це ще одна таблиця, але просто з відсортованих відповідним полем. Тобто, роблячи індекс одного поля, Ви створюєте ще одну таку саму таблицю, яка буде займати додаткове місце на диску.




Ще один невеликий мінус індексів в MySQL полягає в тому, що запити на вставку нових записів змушують проводити сортування таблиці заново. В результаті, вставка нових записів буде відбуватися трохи довше звичайного. Але не забувайте, що в большіінстве випадків робити це доводиться набагато рідше, ніж робити вибірку, тому цей мінус не суттєвий.

Як зробити індекс в MySQL?

Відео: MySQL. урок 11




Для первинних ключів (PRIMARY KEY) Індекс створюється автоматично, а ось для інших полів послідовність дій в PHPMyAdmin наступна:

  1. Зайти на головну сторінку PHPMyAdmin.
  2. Вибрати зі списку ім`я бази даних, де знаходиться необхідна таблиця.

    Вибрати базу даних в PHPMyAdmin

  3. Клікнути по імені таблиці, в яку Ви хочете створити індекс.

    Вибрати таблицю в PHPMyAdmin

  4. Клацнути на значок "блискавки"Навпроти того поля, для якого Ви хочете створити індекс.

    Створення індексу в PHPMyAdmin

І, наостанок, хочеться зробити невелике резюме, щоб Ви зрозуміли: "Коли треба створювати індекси MySQL":

  • Якщо по полю дуже часто йде вибірка, то його треба робити індексом.
  • Якщо в таблицю дуже часто додаються записи, і при цьому вибірка відбувається рідко (таке іноді буває), то індекси робити не треба.

І ще дещо. Якщо раптом Ви бачите, що Ваші запити на вибірку дуже сильно гальмують, то проаналізуйте причину цього. Швидше за все, треба просто додати індекс. Загалом, тестируйте, і все стане зрозуміло.

Поділися в соціальних мережах:

Схожі
Оптимізація запитів до mysqlОптимізація запитів до mysql
Структура бази данихСтруктура бази даних
Двигуни баз даних.Двигуни баз даних.
Права (привілеї) користувачів в mysqlПрава (привілеї) користувачів в mysql
Запит sql для сортування результату вибіркиЗапит sql для сортування результату вибірки
Запит sql на вибірку записівЗапит sql на вибірку записів
Як дізнатися кількість записів в sql-вибірціЯк дізнатися кількість записів в sql-вибірці
Запит sql на створення індексуЗапит sql на створення індексу
Створення тригерів в mysqlСтворення тригерів в mysql
MysqlMysql
» » Індекси в mysql