Індекси в mysql
У попередніх статтях я часто згадував про індекси в MySQL. і я обіцяв, що скоро про них розповім. Так ось, цей час настав, і сьогодні Ви дізнаєтеся про індексах MySQL, про їх призначення і про те, як їх створювати.
Індекси використовуються для прискорення вибірки даних з таблиць бази даних. По суті справи, індекс в MySQL - це сортування певного поля в таблиці. Тобто якщо поле зробити індексом, то вся таблиця буде відсортована по цьому полю. Чому це вигідно?
Відео: Індекси.Унікальние значенія.Внешніе і первинні ключі в MySQL
Припустимо, в нашій таблиці знаходиться 1000000 записів. У кожного запису є унікальний ідентифікатор ID. І, допустимо, нам треба витягнути запість з ID = 530124. Якщо немає індексу, то MySQL буде по черзі перебирати всі записи в таблиці, поки не знайде потрібну. У гіршому випадку, він буде змушений перебрати 1000000 записів. Зрозуміло, це буде дуже довго. А якби був індекс (тобто поле було б відсортовано), то вибірка записи сталася б в середньому в 100 000 раз швидше. Як бачите, вигода очевидна.
Однак, індекси мають ваду, який не дозволяє робити індексом кожне поле таблиці. Фактично, індекс - це ще одна таблиця, але просто з відсортованих відповідним полем. Тобто, роблячи індекс одного поля, Ви створюєте ще одну таку саму таблицю, яка буде займати додаткове місце на диску.
Ще один невеликий мінус індексів в MySQL полягає в тому, що запити на вставку нових записів змушують проводити сортування таблиці заново. В результаті, вставка нових записів буде відбуватися трохи довше звичайного. Але не забувайте, що в большіінстве випадків робити це доводиться набагато рідше, ніж робити вибірку, тому цей мінус не суттєвий.
Як зробити індекс в MySQL?
Відео: MySQL. урок 11
Для первинних ключів (PRIMARY KEY) Індекс створюється автоматично, а ось для інших полів послідовність дій в PHPMyAdmin наступна:
- Зайти на головну сторінку PHPMyAdmin.
- Вибрати зі списку ім`я бази даних, де знаходиться необхідна таблиця.
- Клікнути по імені таблиці, в яку Ви хочете створити індекс.
- Клацнути на значок "блискавки"Навпроти того поля, для якого Ви хочете створити індекс.
І, наостанок, хочеться зробити невелике резюме, щоб Ви зрозуміли: "Коли треба створювати індекси MySQL":
- Якщо по полю дуже часто йде вибірка, то його треба робити індексом.
- Якщо в таблицю дуже часто додаються записи, і при цьому вибірка відбувається рідко (таке іноді буває), то індекси робити не треба.
І ще дещо. Якщо раптом Ви бачите, що Ваші запити на вибірку дуже сильно гальмують, то проаналізуйте причину цього. Швидше за все, треба просто додати індекс. Загалом, тестируйте, і все стане зрозуміло.
- Відеоурок - вибірка даних з бази даних
- Як правильно створювати структуру бази даних
- Як дізнатися кількість записів в sql-вибірці
- Як дізнатися останній id в mysql
- Sql-запит на вибірку з декількох таблиць
- Двигуни баз даних.
- Випадкова вибірка з бази даних
- Запит sql на вибірку записів
- Створення тригерів в mysql
- Group by в sql
- Управління записами в phpmyadmin
- Запит sql на вибірку певного числа записів
- Запит sql на створення індексу
- Різниця між sql і mysql
- Mysql
- Оптимізація запитів до mysql
- Помилка max user connections в mysql
- Права (привілеї) користувачів в mysql
- Управління таблицями в phpmyadmin
- Структура бази даних
- Запит sql на додавання і видалення записів