Схема обучения MySQL

Понимание базовых знаний и команд MySQL является обязательным условием для использования этой базы данных. Ниже приведены некоторые концепции и команды MySQL, которые необходимо понимать, включая базовые операции CRUD (создание, чтение, обновление, удаление), а также некоторые расширенные функции:

1.Установка и запуск

  • Заказ
    sudo apt-get install mysql-server
    sudo service mysql start
    
  • Анализ .
    Эти команды устанавливают сервер MySQL в системах на базе Debian и запускают службу.

2. Войдите в базу данных

  • Заказ
    mysql -u root -p
    
  • Анализ :
    используйте пользователя root для входа в базу данных MySQL. Вам будет предложено ввести пароль.

3. Операции с базой данных

а) Создать базу данных
  • Заказ
    CREATE DATABASE mydatabase;
    
  • Решение :
    Создайте новую базу данных с именем «mydatabase».
б) Выберите базу данных
  • Заказ
    USE mydatabase;
    
  • Решение :
    выберите ранее созданную базу данных «mydatabase» для дальнейших операций.
в) Просмотр всех баз данных
  • Заказ
    SHOW DATABASES;
    
  • Анализ :
    список всех баз данных, присутствующих на сервере.

4. Табличные операции

а) Создать таблицу
  • Заказ
    CREATE TABLE users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(100),
        email VARCHAR(100)
    );
    
  • Анализ :
    создайте новую таблицу с именем «пользователи» в текущей базе данных, содержащую столбцы идентификатора, имени и электронной почты.
б) Посмотреть все таблицы
  • Заказ
    SHOW TABLES;
    
  • Синтаксический анализ :
    список всех таблиц, существующих в текущей базе данных.
в) Просмотр структуры таблицы
  • Заказ
    DESCRIBE users;
    
  • Анализ :
    отображение структуры таблицы «пользователи», включая имена столбцов, типы данных и т. д.

5. Запись операций

а) Вставить запись
  • Заказ
    INSERT INTO users (name, email) VALUES ('John Doe', '[email protected]');
    
  • Анализ :
    вставьте новую запись в таблицу «пользователи».
б) Запросы записей
  • Заказ
    SELECT * FROM users;
    
  • Синтаксический анализ :
    получение всех записей из таблицы «пользователи».
в) Обновление записей
  • Заказ
    UPDATE users SET email = '[email protected]' WHERE name = 'John Doe';
    
  • Анализ :
    обновить адрес электронной почты определенной записи в таблице «пользователи».
г) Удалить записи
  • Заказ
    DELETE FROM users WHERE name = 'John Doe';
    
  • Решение :
    Удалите определенные записи из таблицы «пользователи».

6.Индекс _

  • Заказ
    CREATE INDEX idx_users_name ON users(name);
    
  • Анализ :
    создайте индекс для столбца имени таблицы «пользователи», чтобы ускорить запрос.

7. Пользователи и разрешения

а) Создать пользователя
  • Заказ
    CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
    
  • Анализ :
    Создайте нового пользователя MySQL и установите пароль.
б) Предоставление разрешений
  • Заказ
    GRANT ALL PRIVILEGES ON mydatabase.* TO 'newuser'@'localhost';
    
  • Решение :
    Предоставьте новым пользователям все разрешения на доступ к определенной базе данных.

8. Резервное копирование и восстановление

а) Резервное копирование базы данных
  • Заказ
    mysqldump -u root -p mydatabase > mydatabase.sql
    
  • Синтаксический анализ :
    резервное копирование определенной базы данных в файл SQL.
б) Восстановить базу данных
  • Заказ
    mysql -u root -p mydatabase < mydatabase.sql
    
  • Анализ :
    восстановление базы данных из файла SQL.

9.Оптимизация и обслуживание

а) Оптимизировать таблицу
  • Заказ
    OPTIMIZE TABLE users;
    
  • Синтаксический анализ :
    оптимизируйте определенные таблицы, чтобы освободить неиспользуемое пространство и повысить производительность.
б) Контрольный список
  • Заказ
    CHECK TABLE users;
    
  • Синтаксический анализ :
    проверьте целостность таблицы и найдите ошибки.

Эти базовые знания и команды являются основой для начала работы с MySQL, но MySQL имеет более продвинутые функции и методы оптимизации, которые стоит изучить и понять поглубже.

1. Таблица разделов

  • Заказ
    CREATE TABLE employees (
        id INT,
        name VARCHAR(50),
        hired DATE
    )
    PARTITION BY RANGE( YEAR(hired) ) (
        PARTITION p0 VALUES LESS THAN (1991),
        PARTITION p1 VALUES LESS THAN (1999),
        PARTITION p2 VALUES LESS THAN MAXVALUE
    );
    
  • Анализ
    Эта команда создает секционированную таблицу, в которой данные разделяются на разные части на основе значения года в столбце «нанят». Это оптимизирует производительность запросов, особенно при обработке больших объемов данных.

2. Подзапрос

  • Заказ
    SELECT name FROM employees WHERE id IN (SELECT id FROM department WHERE name = 'HR');
    
  • Синтаксический анализ
    Эта команда выполняет подзапрос для поиска имен всех сотрудников отдела кадров. Подзапросы можно использовать для построения более сложных запросов.

3.Просмотреть _

  • Заказ
    CREATE VIEW hr_employees AS SELECT name FROM employees WHERE department = 'HR';
    
  • Анализ
    Эта команда создает представление, в котором перечислены все сотрудники, принадлежащие отделу кадров. Представления — это виртуальные таблицы, основанные на запросах SQL, которые можно использовать для упрощения сложных запросов.

4. Хранимые процедуры

  • Заказ
    DELIMITER //
    CREATE PROCEDURE GetEmployeeCount(IN dept_name VARCHAR(50), OUT count INT)
    BEGIN
        SELECT COUNT(*) INTO count FROM employees WHERE department = dept_name;
    END //
    DELIMITER ;
    CALL GetEmployeeCount('HR', @count);
    SELECT @count;
    
  • Синтаксический анализ
    Эта команда определяет хранимую процедуру для получения количества сотрудников в определенном отделе. Хранимая процедура — это набор операторов SQL, хранящихся в базе данных, которые можно выполнить одним вызовом.

5. Триггер

  • Заказ
    DELIMITER //
    CREATE TRIGGER before_employee_update
    BEFORE UPDATE ON employees
    FOR EACH ROW
    BEGIN
        SET NEW.updated_at = NOW();
    END; //
    DELIMITER ;
    
  • Синтаксический анализ
    Эта команда создает триггер, который автоматически устанавливает поле «updated_at» перед каждым обновлением таблицы «сотрудники». Триггеры можно использовать для автоматизации операций с базой данных.

6. Дела

  • Заказ
    START TRANSACTION;
    UPDATE account SET balance = balance - 100 WHERE name = 'John';
    UPDATE account SET balance = balance + 100 WHERE name = 'Jane';
    COMMIT;
    
  • Анализ
    Эта команда выполняет транзакцию по переводу суммы со счета Джона на счет Джейн. Транзакции обеспечивают атомарность набора операций: либо все они успешны, либо все терпят неудачу.

7. Оптимизация индекса

  • Заказ
    ALTER TABLE employees ADD INDEX idx_department (department);
    
  • Синтаксический анализ
    может значительно повысить производительность запросов за счет добавления индексов к столбцам, которые часто используются для поиска и сортировки.

8. Кэш запросов

  • Синтаксический анализ
    MySQL имеет встроенный кеш запросов. Когда кэширование запросов включено, MySQL сохраняет результаты запроса SELECT, и когда получен точно такой же запрос, он возвращает результаты непосредственно из кэша вместо повторного выполнения запроса.

9.Анализ производительности

  • Заказ
    EXPLAIN SELECT * FROM employees WHERE department = 'HR';
    
  • Анализ.
    Используя команду EXPLAIN, вы можете увидеть, как MySQL выполняет запрос, что очень полезно для оптимизации производительности запроса.

10. Архивирование базы данных

  • Синтаксический анализ
    Чтобы повысить производительность и управлять большими объемами данных, вы можете периодически архивировать старые записи данных.

11.Полнотекстовый поиск

  • Заказ
    ALTER TABLE articles ADD FULLTEXT(title, content);
    SELECT * FROM articles WHERE MATCH(title, content) AGAINST('keyword');
    
  • Синтаксический анализ
    MySQL поддерживает полнотекстовый поиск по столбцам CHAR, VARCHAR и TEXT. Полнотекстовое индексирование можно использовать для быстрого поиска записей, содержащих определенные слова или фразы.

12. Внешние ключи и ссылочная целостность

  • Заказ
    ALTER TABLE orders ADD FOREIGN KEY (customer_id) REFERENCES customers(id);
    
  • Анализ
    внешних ключей используется для обеспечения целостности данных между таблицами. В этом примере столбец ordersтаблицы customer_idопределяется как внешний ключ столбца customersтаблицы id.

13.Планировщик событий

  • Заказ
    SET GLOBAL event_scheduler = ON;
    CREATE EVENT myevent
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
    DO
      UPDATE mytable SET mycolumn = mycolumn + 1;
    
  • Анализ
    Планировщик событий используется для регулярного выполнения команд или операций базы данных. В этом примере создается событие для обновления столбца в таблице через час.

14. Управление табличным пространством и разделами

  • Анализ
    табличных пространств позволяет вам управлять физической структурой вашей базы данных. Секционирование может разделить физическую таблицу на несколько небольших подтаблиц, что позволяет оптимизировать производительность запросов к большим таблицам.

15. Онлайн-операции DDL

  • Заказ
    ALTER TABLE tablename ADD COLUMN newcol INT, ALGORITHM=INPLACE, LOCK=NONE;
    
  • Операции Parsing
    Online DDL позволяют изменять структуру таблицы, не блокируя доступ к существующей таблице.

16.Оконные функции

  • Заказ
    SELECT name, salary, 
           AVG(salary) OVER(PARTITION BY department) as avg_salary_department
    FROM employees;
    
  • Функция окна синтаксического анализа
    позволяет выполнять вычисления по строкам, что особенно полезно при расчете совокупных значений, таких как средняя зарплата по отделу.

17. Общие табличные выражения (CTE)

  • Заказ
    WITH cte_name AS (
        SELECT department, AVG(salary) as avg_salary
        FROM employees
        GROUP BY department
    )
    SELECT * FROM cte_name;
    
  • Анализ
    CTE позволяет определять временные наборы результатов, на которые можно ссылаться в запросах SELECT, INSERT, UPDATE или DELETE.

18. Оптимизатор

  • Оптимизатор
    запросов MySQL автоматически выбирает наиболее эффективный план выполнения запроса. Вы можете использовать подсказки и индексы, чтобы влиять на решения оптимизатора, а также использовать EXPLAINкоманду для просмотра выбора оптимизатора.

19. Ресурсная группа

  • Заказ
    CREATE RESOURCE GROUP rg1
    TYPE = USER
    VCPU = 2,4
    PRIORITY = 10;
    
  • Группы ресурсов разрешения
    позволяют выделять системные ресурсы для конкретных запросов для управления рабочими нагрузками в многопользовательской среде.

Это некоторые дополнительные расширенные функции и методы оптимизации MySQL, которые помогают эффективно управлять базой данных и запрашивать ее.

Guess you like

Origin blog.csdn.net/m0_57021623/article/details/133221173