SELECT statement optimization in MySQL Оптимізація пропозиції SELECT У цій роботі слід застосувати техніки оптимізації запитів на основі оператора SELECT, а також побудувати індекси на основі стовпців для прискорення виконання запитів. У роботі буде використано базу даних Lucky_Shrub. Слід оптимізувати запити, які звертаються до таблиць працівників (Employees) та замовлень (Orders). Таблиця Orders містить таку інформацію: OrderID - ідентифікатор замовлення ClientID - ідентифікатор клієнта ProductID - ідентифікатор продукту Quantity - кількість одиниць продукту Cost - вартість замовлення Date - дата кожного замовлення Таблиця Employees містить таку інформацію EmployeeID - ідентифікатор працівника FullName - повне ім’я працівника (містить, власне, ім’я та прізвище) Role - роль працівника Department - відділ працівника Передумови 1: Створити базу даних, якщо не створено CREATE DATABASE Lucky_Shrub; 2: Використати базу даних USE Lucky_Shrub; 3: Створити таблицю Orders (якщо не створено; якщо створено, тоді перевірити правильність схеми таблиці) CREATE TABLE Orders ( OrderID INT NOT NULL, ClientID VARCHAR(10) DEFAULT NULL, ProductID VARCHAR(10) DEFAULT NULL, Quantity INT DEFAULT NULL, Cost DECIMAL(6, 2) DEFAULT NULL, Date DATE DEFAULT NULL, PRIMARY KEY (OrderID) ); Для перевірки схеми можна використати команду SHOW CREATE TABLE Orders; 4: Створити таблицю Employees (якщо не створено; якщо створено, тоді перевірити правильність схеми таблиці) CREATE TABLE Employees ( EmployeeID INT DEFAULT NULL, FullName VARCHAR(100) DEFAULT NULL, Role VARCHAR(50) DEFAULT NULL, Department VARCHAR(255) DEFAULT NULL ); Для перевірки схеми можна використати команду SHOW CREATE TABLE Orders; 5: Вставте дані у таблицю Orders (якщо дані у таблиці є, перевірте чи відповідають вони запропонованим, за потреби підкоригуйте) INSERT INTO Orders ( OrderID, ClientID, ProductID, Quantity, Cost, Date ) VALUES ( 1, "Cl1", "P1", 10, 500, "2020-09-01" ), ( 2, "Cl2", "P2", 5, 100, "2020-09-05" ), ( 3, "Cl3", "P3", 20, 800, "2020-09-03" ), ( 4, "Cl4", "P4", 15, 150, "2020-09-07" ), ( 5, "Cl3", "P3", 10, 450, "2020-09-08" ), ( 6, "Cl2", "P2", 5, 800, "2020-09-09" ), ( 7, "Cl1", "P4", 22, 1200, "2020-09-10" ), ( 8, "Cl3", "P1", 15, 150, "2020-09-10" ), ( 9, "Cl1", "P1", 10, 500, "2020-09-12" ), ( 10, "Cl2", "P2", 5, 100, "2020-09-13" ), ( 11, "Cl1", "P2", 15, 80, "2020-09-12" ), ( 12, "Cl1", "P1", 10, 500, "2022-09-01" ), ( 13, "Cl2", "P2", 5, 100, "2022-09-05" ), ( 14, "Cl3", "P3", 20, 800, "2022-09-03" ), ( 15, "Cl4", "P4", 15, 150, "2022-09-07" ), ( 16, "Cl3", "P3", 10, 450, "2022-09-08" ), ( 17, "Cl2", "P2", 5, 800, "2022-09-09" ), ( 18, "Cl1", "P4", 22, 1200, "2022-09-10" ), ( 19, "Cl3", "P1", 15, 150, "2022-09-10" ), ( 20, "Cl1", "P1", 10, 500, "2022-09-12" ), ( 21, "Cl2", "P2", 5, 100, "2022-09-13" ), ( 22, "Cl2", "P1", 10, 500, "2021-09-01" ), ( 23, "Cl2", "P2", 5, 100, "2021-09-05" ), ( 24, "Cl3", "P3", 20, 800, "2021-09-03" ), ( 25, "Cl4", "P4", 15, 150, "2021-09-07" ), ( 26, "Cl1", "P3", 10, 450, "2021-09-08" ), ( 27, "Cl2", "P1", 20, 1000, "2022-09-01" ), ( 28, "Cl2", "P2", 10, 200, "2022-09-05" ), ( 29, "Cl3", "P3", 20, 800, "2021-09-03" ); 5: Імпортуйте дані у таблицю Employees скориставшись файлом MS Excel (https://docs.google.com/spreadsheets/d/14KHqSVEqqvaPXSRSlJdHwMUJlBt6VBtr?rtpof=true&authuser=yuriy.kotsyuk%40oa.edu.ua&usp=drive_fs). Для цього здійсніть експорт даних у формат csv з екселівського файлу, після чого здійсніть імпорт у таблицю бази даних. LOAD DATA INFILE '/var/lib/mysql-files/Employees.csv' INTO TABLE Employees FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES ( EmployeeID, FullName, Role, Department, @dummy ); Перевірте наявність даних після операції імпорту