Вы находитесь на странице: 1из 183

Центр Компьютерного обучения СПЕЦИАЛИСТ при МГТУ им. Баумана

Установка и запуск сервера MySQL 5

СПЕЦИАЛИСТ при МГТУ им. Баумана Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 В этом модуле рассматриваются

В этом модуле рассматриваются следующие темы:

Назначение и описание сервера MySQL 5

Установка сервера MySQL 5

Обзор файлов сервера MySQL 5

Клиентские программы для работы сервером

Использование утилит командной строки

Использование дополнительных утилит сервера

В этом модуле две лабораторные работы:

Установка сервера MySQL 5

Запуск сервера, обзор баз данных сервера

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 3

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 4

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 5

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 6

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 7

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 8

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 9

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 10

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 11

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 12

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 13

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 14

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 15

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 16

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 17

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 Установите в привод CD слушателя и

Установите в привод CD слушателя и откройте проводником этот диск

В папке CD_drive:\Soft\MySQL найдите архив с сервером MySQL 5

Раскройте этот архив в любую папку на вашей машине и выполните файл setup.exe

Следуя указаниям мастера, установите и настройте сервер MySQL

Убедитесь, что сервер MySQL запущен, проверив открытый порт TCP 3306 (это можно сделать командой netstat –ano)

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 19

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 20

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 21

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 22

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 23

Установка и запуск сервера MySQL 5

Установка и запуск сервера MySQL 5 Откройте командное окно

Откройте командное окно операционной системы:

Пуск Выполнить cmd

Введите команду mysql –uroot –ppassword

Введите команду USE mysql;

Введите команду SHOW TABLES;

Выведите на экран содержимое таблицы user SELECT * FROM user\G

Центр Компьютерного обучения СПЕЦИАЛИСТ при МГТУ им. Баумана

Реляционные базы данных

обучения СПЕЦИАЛИСТ при МГТУ им. Баумана Реляционные базы данных

Реляционные базы данных

Реляционные базы данных 26

Реляционные базы данных

Реляционные базы данных 27

Реляционные базы данных

Реляционные базы данных 28

Реляционные базы данных

Реляционные базы данных 29

Реляционные базы данных

Реляционные базы данных 30

Реляционные базы данных

Реляционные базы данных 31

Реляционные базы данных

Реляционные базы данных 32

Реляционные базы данных

Реляционные базы данных 33

Реляционные базы данных

Реляционные базы данных 34

Реляционные базы данных

Реляционные базы данных 35

Реляционные базы данных

Реляционные базы данных 36

Реляционные базы данных

Реляционные базы данных 37

Реляционные базы данных

Реляционные базы данных 38

Реляционные базы данных

Реляционные базы данных Определите сущности электронного

Определите сущности электронного магазина

Товары – это:

 

o

Наименование

o

Цена

o

Описание

o

Производитель Заказ – это:

o

Заказчик (ФИО, e-mail)

o

Адрес доставки

o

Какие товары приобретены

o

Когда сделан заказ

o

По какой цене отпущен товар (товары)

Реляционные базы данных

Реляционные базы данных 40

Реляционные базы данных

Реляционные базы данных 41

Реляционные базы данных

Реляционные базы данных 42

Реляционные базы данных

Реляционные базы данных 43

Реляционные базы данных

Реляционные базы данных 44

Реляционные базы данных

Реляционные базы данных 45

Реляционные базы данных

Реляционные базы данных 46

Реляционные базы данных

Реляционные базы данных Определите таблицы для БД электронного

Определите таблицы для БД электронного магазина

Определите связи (отношения) этих таблиц

Приведите Вашу БД ко второй нормальной форме

Определите транзитивные зависимости в БД

Приведите БД к третьей нормальной форме

Это БКНФ?

Реляционные базы данных

Реляционные базы данных 48

Центр Компьютерного обучения СПЕЦИАЛИСТ при МГТУ им. Баумана

Язык SQL: манипулирование структурой данных

при МГТУ им. Баумана Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 50

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 51

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 52

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 53

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 54

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 55

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 56

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 57

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 58

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 59

Язык SQL: манипулирование структурой данных

структурой данных Создайте БД на сервере:

Создайте БД на сервере:

данных Создайте БД на сервере: Наполните БД тестовыми записями
данных Создайте БД на сервере: Наполните БД тестовыми записями
данных Создайте БД на сервере: Наполните БД тестовыми записями

Наполните БД тестовыми записями (данные находятся в файле course_db.xls (если позволяет время)

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 61

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 62

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 63

Язык SQL: манипулирование структурой данных

структурой данных Выберите базу данных INFORMATION_SCHEMA

Выберите базу данных INFORMATION_SCHEMA

use INFORMATION_SCHEMA;

Выведите список таблиц

show tables;

Выведите информацию о каждой таблице

describe table_name;

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 65

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 66

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 67

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 68

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 69

Язык SQL: манипулирование структурой данных

структурой данных Создайте индексы для БД courses

Создайте индексы для БД courses lessons.teacher lessons.course lessons.date

courses.cathegory

courses.previous

Определите главные отношения в вашей БД

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 71

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 72

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 73

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 74

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 75

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 76

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 77

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 78

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 79

Язык SQL: манипулирование структурой данных

структурой данных Найдите файл course_db.sql Введите

Найдите файл course_db.sql

Введите команду

mysql –uroot –ppassword course < course_db.sql

Подключитесь к серверу

mysql –uroot –ppassword course

Переключите языковую настройку:

set names 'cp866';

Проверьте таблицы Вашей базы данных

Язык SQL: манипулирование структурой данных

Язык SQL: манипулирование структурой данных 81

Язык SQL: манипулирование структурой данных

Центр Компьютерного обучения СПЕЦИАЛИСТ при МГТУ им. Баумана

Язык SQL: манипулирование данными

СПЕЦИАЛИСТ при МГТУ им. Баумана Язык SQL: манипулирование данными

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 84

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 85

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 86

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 87

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 88

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 89

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 90

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 91

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 92

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными Переключитесь в базу данных courses

Переключитесь в базу данных courses

Убедитесь, что кодировка переключена на необходимую

Введите запрос, выводящий число записей таблицы lessons проходящих в аудитории БК-19

Введите запрос, выводящий максимальное число часов занятий 21.09.2006

Запишите число записей во всех таблицах

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 94

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 95

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 96

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 97

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными Переключитесь в базу данных courses

Переключитесь в базу данных courses

Убедитесь, что кодировка переключена на необходимую

Введите запрос, выводящий сумму всех занятий по аудиториям

Введите запрос, выводящий сумму всех занятий по датам

Модернизируйте запрос так, чтобы вывести только занятия БК-19

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 99

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 100

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 101

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 102

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 103

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 104

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными Переключитесь в базу данных courses

Переключитесь в базу данных courses

Убедитесь, что кодировка переключена на необходимую

Напишите запрос, выводящий все занятия преподавателя Иванов Иван Иванович

Напишите запрос, выводящий все занятия, в том числе и преподавателя Иванов Иван Иванович

Напишите запрос, выводящий курсы, в том числе и курсы 10.09.2006

Выведите список курсов, которые читает преподаватель Петров Петр Петрович

Язык SQL: манипулирование данными

Язык SQL: манипулирование данными 106

Центр Компьютерного обучения СПЕЦИАЛИСТ при МГТУ им. Баумана

Объединение запросов и консолидация данных

при МГТУ им. Баумана Объединение запросов и консолидация данных

Объединение запросов и консолидация данных

Объединение запросов и консолидация данных 108

Объединение запросов и консолидация данных

Объединение запросов и консолидация данных 109

Объединение запросов и консолидация данных

Объединение запросов и консолидация данных 110

Объединение запросов и консолидация данных

Объединение запросов и консолидация данных 111

Объединение запросов и консолидация данных

Объединение запросов и консолидация данных 112

Объединение запросов и консолидация данных

Объединение запросов и консолидация данных 113

Объединение запросов и консолидация данных

запросов и консолидация данных Загрузите базу данных world Для

Загрузите базу данных world

Для этого, создайте БД world

CREATE DATABASE world;

Выйдите из клиента MySQL с помощью команды quit

Введите команду

mysql –uroot –ppassword world < world.sql

Откройте клиент MySQL для базы данных world

mysql –uroot –ppassword world

Напишите запрос, который выведет список стран с городами более 10 000 000 человек

Измените запрос, чтобы добавить к результатам первого запроса список стран с городами 1 000 000 - 5 000 000 человек

Объединение запросов и консолидация данных

Объединение запросов и консолидация данных 115

Объединение запросов и консолидация данных

Объединение запросов и консолидация данных 116

Объединение запросов и консолидация данных

Объединение запросов и консолидация данных 117

Объединение запросов и консолидация данных

запросов и консолидация данных В базе данных world создайте

В базе данных world создайте просмотр регионов стран

Создайте просмотр стран Европы (и Западной Европы и Восточной Европы и Южной)

Аналогично сделайте просмотр всех стран Африки и Азии

Используя INFORMATION_SCHEMA, выведите на экран все просмотры в БД world

Объединение запросов и консолидация данных

Объединение запросов и консолидация данных 119

Объединение запросов и консолидация данных

Центр Компьютерного обучения СПЕЦИАЛИСТ при МГТУ им. Баумана

Хранимые процедуры и триггеры

СПЕЦИАЛИСТ при МГТУ им. Баумана Хранимые процедуры и триггеры

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 122

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 123

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 124

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 125

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 126

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 127

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 128

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 129

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 130

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 131

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 132

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 133

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 134

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 135

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 136

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 137

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 138

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 139

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 140

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 141

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры Создайте хранимую процедуру в БД

Создайте хранимую процедуру в БД world, которая выводит список всех таблиц и количество записей в каждой из них

Создайте хранимую процедуру, которая возвращает список индексов для каждой таблицы БД

Создайте хранимую процедуру, возвращающую список пользователей в виде одной строки

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 143

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 144

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 145

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры Переключитесь в базу данных course

Переключитесь в базу данных course

Создайте триггер для таблицы teachers, удаляющий все записи о занятиях при удалении преподавателя

Создайте триггер, удаляющий все записи о занятиях при удалении курса

Создайте триггер, обновляющий код курса в таблице lessons при его обновлении кода в таблице course

Аналогично создайте триггер обновления кода преподавателя

Проверьте работу триггеров

o

Удалите один из курсов

o

Обновите код первого курса

o

Удалите одного из преподавателей

o

Обновите код первого преподавателя

Хранимые процедуры и триггеры

Хранимые процедуры и триггеры 147

Хранимые процедуры и триггеры

Центр Компьютерного обучения СПЕЦИАЛИСТ при МГТУ им. Баумана

Транзакции и типы хранилищ MySQL

СПЕЦИАЛИСТ при МГТУ им. Баумана Транзакции и типы хранилищ MySQL

Транзакции и типы хранилищ MySQL

Транзакции и типы хранилищ MySQL 150

Транзакции и типы хранилищ MySQL

Транзакции и типы хранилищ MySQL 151

Транзакции и типы хранилищ MySQL

Транзакции и типы хранилищ MySQL 152

Транзакции и типы хранилищ MySQL

Транзакции и типы хранилищ MySQL 153

Транзакции и типы хранилищ MySQL

Транзакции и типы хранилищ MySQL 154

Транзакции и типы хранилищ MySQL

Транзакции и типы хранилищ MySQL 155

Транзакции и типы хранилищ MySQL

Транзакции и типы хранилищ MySQL 156

Транзакции и типы хранилищ MySQL

Транзакции и типы хранилищ MySQL 157

Транзакции и типы хранилищ MySQL

Транзакции и типы хранилищ MySQL 158

Транзакции и типы хранилищ MySQL

Транзакции и типы хранилищ MySQL Откройте два экземпляра

Откройте два экземпляра командного окна и в обоих окнах введите команду

mysql -uroot -ppassword course

В обоих клиентах введите команду

set names 'cp866';

В одном из окон (условно, в «первом окне») введите команду

start transaction;

В первом окне введите команду

insert into courses (title) values ('Новый курс');

В обоих окнах (и с первом и во втором) введите команду

select title from courses;

Какой уровень изоляции транзакции используется?

Транзакции и типы хранилищ MySQL

Откатите транзакцию в первом окне командой

rollback;

Измените уровень изоляции в обоих окнах командой

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

В первом окне введите команду

start transaction;

В первом окне введите команду

insert into courses (title) values ('Новый курс');

В обоих окнах (и с первом и во втором) введите команду

select title from courses;

Откатите транзакцию в первом окне командой

rollback;

В обоих окнах (и с первом и во втором) введите команду

select title from courses;

Объясните разницу в результатах

Повторяя приведенные выше шаги попробуйте все уровни изоляции

o

READ UNCOMMITTED

o

READ COMMITTED

o

REPEATABLE READ

o

SERIALIZABLE

Транзакции и типы хранилищ MySQL

Транзакции и типы хранилищ MySQL 161

Транзакции и типы хранилищ MySQL

Транзакции и типы хранилищ MySQL 162

Транзакции и типы хранилищ MySQL

Транзакции и типы хранилищ MySQL 163

Транзакции и типы хранилищ MySQL

Транзакции и типы хранилищ MySQL Переключитесь на базу данных test USE

Переключитесь на базу данных test

USE test;

Создайте две таблицы city1 и city2 по образу таблицы city из базы данных world

CREATE TABLE city1 LIKE world.city; CREATE TABLE city2 LIKE world.city;

Удалите колонку id из табдицы city1

ALTER TABLE city1 DROP COLUMN id;

Добавьте новую колонку id (без AUTO_INCREMENT!) в таблицу city1

ALTER TABLE city1 ADD COLUMN id INT;

Измените тип хранилища для таблицы city1

ALTER TABLE city1 ENGINE=ARCHIVE;

Скопируйте данные в таблицу city1 из таблицы city базы данных world

mysql> INSERT INTO city1 -> (id, Name, CountryCode, District, Population) -> SELECT id, Name, CountryCode, District, Population -> FROM world.city;

Транзакции и типы хранилищ MySQL

Измените тип хранилища для таблицы city2

ALTER TABLE city2 ENGINE=MEMORY;

Скопируете данные в таблицу city2 из таблицы city базы данных world

INSERT INTO city2 SELECT * FROM world.city;

Выполните запросы

mysql> SELECT name, population FROM city1 -> WHERE name LIKE '%os%' -> ORDER BY population;

mysql> SELECT name, population FROM city2 -> WHERE name LIKE '%os%' -> ORDER BY population;

Если удаться - заметьте разницу во времени на выполнение этих запросов

Откройте проводник и обратите внимание на файлы в базе данных test

на файлы в базе данных test Попробуйте изменить тип

Попробуйте изменить тип хранилища таблицы city2

ALTER TABLE city2 ENGINE=MyISAM;

Что изменилось в папке базы данных?

Транзакции и типы хранилищ MySQL

Транзакции и типы хранилищ MySQL 166

Центр Компьютерного обучения СПЕЦИАЛИСТ при МГТУ им. Баумана

Оптимизация и обслуживание сервера MySQL 5

при МГТУ им. Баумана Оптимизация и обслуживание сервера MySQL 5

Оптимизация и обслуживание сервера MySQL 5

Оптимизация и обслуживание сервера MySQL 5 168

Оптимизация и обслуживание сервера MySQL 5

Оптимизация и обслуживание сервера MySQL 5 169

Оптимизация и обслуживание сервера MySQL 5

Оптимизация и обслуживание сервера MySQL 5 170

Оптимизация и обслуживание сервера MySQL 5

Оптимизация и обслуживание сервера MySQL 5 171

Оптимизация и обслуживание сервера MySQL 5

и обслуживание сервера MySQL 5 Откройте командное окно

Откройте командное окно

Введите команду

cd C:\MySQL-course

Выполните резервное копирование базы данных world

mysqldump -uroot -ppassword world > world.sql

Откройте файл C:\MySQL-course\world.sql с помощью Блокнота Windows. Обратите внимание на его кодировку

Выполните резервное копирование базы данных course

mysqldump -uroot -ppassword course > course.sql

Откройте файл C:\MySQL-course\course.sql с помощью Блокнота Windows. Обратите внимание на его кодировку

Сохраните этот файл с кодировке ANSI, чтобы избавится от BOM (Byte Order Mark) в начале файла

В тексте этого файла перед созданием первой таблицы допишите команду на переключение

Оптимизация и обслуживание сервера MySQL 5

кодовой страницы

SET NAMES 'cp1251';

Сохраните файл

Повторите эти действия для файла world.sql (Так как в БД world нет национальных символов, кодовую страницу можно не переключать)

Удалите базы данных world и course

mysql -uroot -ppassword -e "drop database course" mysql -uroot -ppassword -e "drop database world"

Убедитесь, что базы данных удалены

Создайте пустые базы данных world и course

mysql -uroot -ppassword -e "create database course" mysql -uroot -ppassword -e " create database world"

Восстановите наполнение баз данных

mysql -uroot -ppassword course < course.sql mysql -uroot -ppassword world < world.sql

Убедитесь, что БД восстановлены:

mysql -uroot -ppassword course

mysql> SET NAMES 'cp866'; mysql> select * from teachers;

Аналогично проверьте БД world

Оптимизация и обслуживание сервера MySQL 5

Оптимизация и обслуживание сервера MySQL 5 174

Оптимизация и обслуживание сервера MySQL 5

Оптимизация и обслуживание сервера MySQL 5 175

Оптимизация и обслуживание сервера MySQL 5

Оптимизация и обслуживание сервера MySQL 5 176

Оптимизация и обслуживание сервера MySQL 5

Оптимизация и обслуживание сервера MySQL 5 177

Оптимизация и обслуживание сервера MySQL 5

Оптимизация и обслуживание сервера MySQL 5 178

Оптимизация и обслуживание сервера MySQL 5

Оптимизация и обслуживание сервера MySQL 5 179

Оптимизация и обслуживание сервера MySQL 5

Оптимизация и обслуживание сервера MySQL 5 180

Оптимизация и обслуживание сервера MySQL 5

и обслуживание сервера MySQL 5 Откройте командное окно и

Откройте командное окно и подключитесь к серверу

mysql -uroot -ppassword world

Выполните запрос

mysql> SELECT name, population -> FROM city -> WHERE id IN ( -> SELECT id FROM city -> WHERE population > 1000000) -> ORDER BY population;

Попробуйте посмотреть план выполнения этого запроса

mysql> EXPLAIN SELECT name, population -> FROM city -> WHERE id IN ( -> SELECT id FROM city -> WHERE population > 1000000) -> ORDER BY population;

Какие изменения необходимо внести в структуру таблиц, чтобы запрос выполнялся быстрее?

Откройте файл my.ini

Найдите и измените параметр

query_cache_size=1M

Оптимизация и обслуживание сервера MySQL 5

Сохраните и закройте файл my.ini

Выйдите из клиента MySQL командой quit

Перезапустите сервер MySQL командами

net stop mysql net start mysql

Подключитесь к базе данных world

mysql -uroot -ppassword world

Введите команду и убедитесь, что кеш запросов установлен

SHOW VARIABLES LIKE 'query_cache%';

Несколько раз выполните запрос

mysql> SELECT name, population -> FROM city -> WHERE id IN ( -> SELECT id FROM city -> WHERE population > 1000000) -> ORDER BY population;

Что изменилось?

Оптимизация и обслуживание сервера MySQL 5

Оптимизация и обслуживание сервера MySQL 5 183