Indexes
Індекси дозволяють швидко знаходити потрібну інформацію в таблицях. При створенні індексу для певного поля у БД, система створює окрему структуру, яка містить відсортовані значення цього поля разом із посиланнями на відповідні записи. Дані в індексованому стовпці зберігаються в певному порядку, що полегшує та прискорює пошук: числові дані зберігаються у числовому порядку, текстові — в алфавітному, а дати — у хронологічному. Це дозволяє базі даних швидко знаходити необхідні записи.
Використовувати індекси потрібно з розумом. Кожна зміна в таблиці (UPDATE, INSERT та DELETE) вимагає перестворення індексів, що може уповільнити роботу з базою даних. Саме тому, індекси потрібно створювати лише для тих полів, за якими пошук здійснюватиметься значно частіше ніж запис.
Також на доцільність використання індексів може впливати розмір бази даних. Наприклад, з невеликою базою даних впровадження індексів може не мати значного впливу на продуктивність. Однак зі збільшенням кількості даних індекси можуть значно прискорити операції читання.
Створення індексів — це чудова техніка для оптимізації роботи бази, але застосовуй її свідомо, оскільки вона покращує лише зчитування, і негативно впливає на швидкість запису.
Create Employees table:
CREATE DATABASE company;
USE company;
CREATE TABLE Employees (
EmployeeID INT AUTO_INCREMENT,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Position VARCHAR(50),
Department VARCHAR(50),
HireDate DATE,
PRIMARY KEY (EmployeeID)
);
DESCRIBE Employees;
INSERT INTO Employees (FirstName, LastName, Position, HireDate, Department)
VALUES ('John', 'Doe', 'Manager', '2023-01-10', 'Marketing'),
('Jane', 'Dough', 'Developer', '2023-02-20', 'IT');
SELECT * FROM Employees;
Створення індексу
Для прикладу розглянемо таблицю Employees та створимо індекс для стовпчика Department. Індекси створюються командою CREATE INDEX:
Тут idx_department — це назва індексу, Employes — назва таблиці, а Department — назва стовпчика, дані якого індексуються.
Тепер переглянемо існуючі індекси для нашої таблиці. Для цього використаємо наступну команду:
За потреби ми можемо змінити ім’я індексу чи видалити його. Змінимо назву нашого індексу, наприклад, на current_department_index:
Щоб видалити індекс, потрібно скористатись наступною командою: