MySQL MariaDB

Як знайти індекс таблиці в MySQL?

Як знайти індекс таблиці в MySQL?
Індекс банку даних - це система даних, яка підвищує швидкість операцій з таблицями. Маючи один або більше стовпців, можна генерувати індекси, що створює основу для взаємних швидких випадкових пошуків та ефективного розташування записів. Це слід мати на увазі при побудові індексу, що всі стовпці відкидаються для генерації запитів SQL, а також для побудови одного або навіть подальших індексів для цих стовпців. На практиці індекси є формою таблиць, які містять первинний ключ або поле стовпця індексу і посилаються на окрему таблицю для кожного запису. Користувачі можуть не бачити індекси, вони відкидаються для прискорення запитів, а також пошукова система бази даних споживає їх для відстеження записів дуже швидко.

Індекси за допомогою MySQL WorkBench

По-перше, запустіть MySQL Workbench і підключіть його до кореневої бази даних.

Ми створимо нову таблицю "контакти" в базі даних "data", що містить різні стовпці. У цій таблиці ми маємо один первинний ключ та один УНІКАЛЬНИЙ стовпець ключа, наприклад.g. ідентифікатор та електронна пошта. Тут вам слід пояснити, що вам не потрібно створювати індекси для стовпців UNIQUE та PRIMARY. База даних автоматично створює індекси для обох типів стовпців. Отже, ми будемо робити індекс "телефон" для стовпця "телефон" та індекс "ім'я" для стовпців "перше ім'я" та "прізвище". Виконайте запит за допомогою піктограми спалаху на панелі завдань.

З результату видно, що таблиця та індекси створені.

Тепер перейдіть до панелі схеми. У списку "Таблиці" ви можете знайти новостворену таблицю.

Давайте спробуємо команду SHOW INDEXES, щоб перевірити індекси для цієї конкретної таблиці, як показано нижче в області запиту, використовуючи знак спалаху.

Це вікно з’явиться одразу. Ви можете бачити стовпець "Ім'я ключа", який показує, що ключ належить кожному стовпцю. Оскільки ми створили індекс "телефон" та "ім'я", він також з'являється. Ви можете побачити іншу відповідну інформацію щодо покажчиків e.g., послідовність індексу для певного стовпця, тип індексу, видимість тощо.

Індекси за допомогою оболонки командного рядка MySQL

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

Приклад 01
Припустимо, що ми маємо таблицю 'order1' у схемі 'order' з деякими стовпцями, що мають значення, як показано на зображенні. За допомогою команди SELECT ми маємо отримати записи 'order1'.

>> ВИБЕРІТЬ * ВІД даних.замовлення1;

Оскільки ми ще не визначили жодного індексу для таблиці 'order1', неможливо здогадатися. Отже, ми спробуємо команду SHOW INDEXES або SHOW KEYS, щоб перевірити індекси наступним чином:

>> ПОКАЗАТИ КЛЮЧІ від даних замовлення1 В;

Ви можете зрозуміти, що таблиця 'order1' має лише 1 стовпець первинного ключа з нижченаведеного виводу. Це означає, що індексів ще не визначено, тому він відображає лише 1-рядкові записи для стовпця первинного ключа 'id'.

Давайте перевіримо індекси для будь-якого стовпця в таблиці 'order1', де видимість вимкнена, як показано нижче.

>> ПОКАЗАТИ ІНДЕКСИ ВІД даних.замовлення1 ДЕ ВИДИМО = 'НІ';

Тепер ми створимо кілька УНІКАЛЬНИХ індексів у таблиці 'order1'.  Ми назвали цей УНІКАЛЬНИЙ ІНДЕКС як "rec" та застосували його до 4 стовпців: id, Region, Status і OrderNo. Спробуйте виконати наведену нижче команду.

>> СТВОРИТИ УНІКАЛЬНИЙ ІНДЕКС запис даних.order1 (id, Region, Status, OrderNo);

Тепер давайте побачимо результат створення індексів для конкретної таблиці. Результат наведено нижче після використання команди SHOW INDEXES. У нас є список усіх створених індексів, що мають однакові назви 'rec' для кожного стовпця.

>> ПОКАЗАТИ ІНДЕКСИ З даних замовлення1 В;

Приклад 02
Припустимо нову таблицю "студент" у базі даних "дані" з полями з чотирма стовпцями, що містять деякі записи. Отримайте дані з цієї таблиці, використовуючи запит SELECT наступним чином:

>> ВИБЕРІТЬ * ВІД даних.студент;

Давайте спочатку отримаємо індекси стовпців первинного ключа, спробувавши наведену нижче команду SHOW INDEXES.

>> ПОКАЗАТИ ІНДЕКСИ ВІД даних.студент WHERE Key_name = 'PRIMARY';

Ви можете бачити, що він виведе запис індексу для єдиного стовпця типу "PRIMARY" через речення WHERE, що використовується в запиті.

Давайте створимо один унікальний та один не унікальний індекс на різних стовпцях "студент" таблиці. Спочатку ми створимо УНІКАЛЬНИЙ індекс 'std' у ​​стовпці 'Ім'я' таблиці 'студент' за допомогою команди CREATE INDEX у оболонці клієнтського рядка, як показано нижче.

>> СТВОРИТИ УНІКАЛЬНИЙ ІНДЕКС std ON дані.ім'я студента );

Давайте створимо або додамо не унікальний індекс у стовпці «Тема» таблиці «студент» під час використання команди ALTER. Так, ми використовували команду ALTER, оскільки вона використовується для модифікації таблиці. Отже, ми модифікували таблицю, додаючи індекси до стовпців. Тож давайте спробуємо наведений нижче запит ALTER TABLE в оболонці командного рядка, додати індекс 'stdSub' до стовпця 'Тема'.

>> ЗМІНИТИ таблицю даних.студент ДОДАТИ ІНДЕКС stdSub (Тема);

Тепер настала черга перевірити нещодавно додані індекси таблиці 'студент' та її стовпців 'Ім'я' та 'Тема'. Спробуйте команду нижче, щоб перевірити її.

>> ПОКАЗАТИ ІНДЕКСИ ВІД даних.студент;

З вихідних даних видно, що запити присвоїли неоднозначний індекс стовпцю "Тема", а унікальний індекс - стовпцю "Ім'я". Ви також можете побачити назви покажчиків.

Спробуємо команду DROP INDEX, щоб скинути індекс 'stdSub' з таблиці 'student'.

>> DROP INDEX stdSub ON дані.студент;

Давайте побачимо решту індексів, використовуючи ту саму інструкцію SHOW INDEX, що і нижче. Зараз ми залишили лише два індекси, що залишились у таблиці „студент” згідно з наведеним нижче результатом.

>> ПОКАЗАТИ ІНДЕКСИ ВІД даних.студент;

Висновок

Нарешті, ми зробили всі необхідні приклади про те, як створювати унікальні та не унікальні індекси, показувати або перевіряти індекси та скидати індекси для конкретної таблиці.

Як розробити гру на Linux
Десять років тому не так багато користувачів Linux передбачали, що їх улюблена операційна система колись стане популярною ігровою платформою для комер...
Open Source Ports of Commercial Game Engines
Free, open source and cross-platform game engine recreations can be used to play old as well as some of the fairly recent game titles. This article wi...
Кращі ігри командного рядка для Linux
Командний рядок - це не просто ваш найбільший союзник при використанні Linux, він також може бути джерелом розваг, оскільки ви можете використовувати ...