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

Рабочая тетрадь

  • Upload
    hrdrst

  • View
    132

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Рабочая тетрадь

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

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

MySQL 5

Page 2: Рабочая тетрадь

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

2

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

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

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

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

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

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

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

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

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

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

Page 3: Рабочая тетрадь

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

3

Page 4: Рабочая тетрадь

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

4

Page 5: Рабочая тетрадь

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

5

Page 6: Рабочая тетрадь

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

6

Page 7: Рабочая тетрадь

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

7

Page 8: Рабочая тетрадь

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

8

Page 9: Рабочая тетрадь

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

9

Page 10: Рабочая тетрадь

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

10

Page 11: Рабочая тетрадь

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

11

Page 12: Рабочая тетрадь

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

12

Page 13: Рабочая тетрадь

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

13

Page 14: Рабочая тетрадь

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

14

Page 15: Рабочая тетрадь

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

15

Page 16: Рабочая тетрадь

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

16

Page 17: Рабочая тетрадь

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

17

Page 18: Рабочая тетрадь

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

18

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

проводником этот диск

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

сервером MySQL 5

� Раскройте этот архив в любую папку на вашей машине

и выполните файл setup.exe

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

сервер MySQL

� Убедитесь, что сервер MySQL запущен, проверив

открытый порт TCP 3306 (это можно сделать командой

netstat –ano)

Page 19: Рабочая тетрадь

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

19

Page 20: Рабочая тетрадь

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

20

Page 21: Рабочая тетрадь

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

21

Page 22: Рабочая тетрадь

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

22

Page 23: Рабочая тетрадь

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

23

Page 24: Рабочая тетрадь

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

24

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

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

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

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

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

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

Page 25: Рабочая тетрадь

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

при МГТУ им. Баумана

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

Page 26: Рабочая тетрадь

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

26

Page 27: Рабочая тетрадь

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

27

Page 28: Рабочая тетрадь

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

28

Page 29: Рабочая тетрадь

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

29

Page 30: Рабочая тетрадь

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

30

Page 31: Рабочая тетрадь

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

31

Page 32: Рабочая тетрадь

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

32

Page 33: Рабочая тетрадь

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

33

Page 34: Рабочая тетрадь

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

34

Page 35: Рабочая тетрадь

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

35

Page 36: Рабочая тетрадь

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

36

Page 37: Рабочая тетрадь

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

37

Page 38: Рабочая тетрадь

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

38

Page 39: Рабочая тетрадь

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

39

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

� Товары – это:

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

o Цена

o Описание

o Производитель

� Заказ – это:

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

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

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

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

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

Page 40: Рабочая тетрадь

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

40

Page 41: Рабочая тетрадь

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

41

Page 42: Рабочая тетрадь

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

42

Page 43: Рабочая тетрадь

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

43

Page 44: Рабочая тетрадь

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

44

Page 45: Рабочая тетрадь

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

45

Page 46: Рабочая тетрадь

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

46

Page 47: Рабочая тетрадь

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

47

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

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

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

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

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

� Это БКНФ?

Page 48: Рабочая тетрадь

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

48

Page 49: Рабочая тетрадь

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

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

Page 50: Рабочая тетрадь

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

50

Page 51: Рабочая тетрадь

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

51

Page 52: Рабочая тетрадь

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

52

Page 53: Рабочая тетрадь

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

53

Page 54: Рабочая тетрадь

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

54

Page 55: Рабочая тетрадь

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

55

Page 56: Рабочая тетрадь

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

56

Page 57: Рабочая тетрадь

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

57

Page 58: Рабочая тетрадь

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

58

Page 59: Рабочая тетрадь

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

59

Page 60: Рабочая тетрадь

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

60

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

� Наполните БД тестовыми записями (данные

находятся в файле course_db.xls

(если позволяет время)

Page 61: Рабочая тетрадь

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

61

Page 62: Рабочая тетрадь

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

62

Page 63: Рабочая тетрадь

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

63

Page 64: Рабочая тетрадь

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

64

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

use INFORMATION_SCHEMA;

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

show tables;

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

describe table_name;

Page 65: Рабочая тетрадь

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

65

Page 66: Рабочая тетрадь

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

66

Page 67: Рабочая тетрадь

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

67

Page 68: Рабочая тетрадь

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

68

Page 69: Рабочая тетрадь

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

69

Page 70: Рабочая тетрадь

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

70

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

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

Page 71: Рабочая тетрадь

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

71

Page 72: Рабочая тетрадь

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

72

Page 73: Рабочая тетрадь

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

73

Page 74: Рабочая тетрадь

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

74

Page 75: Рабочая тетрадь

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

75

Page 76: Рабочая тетрадь

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

76

Page 77: Рабочая тетрадь

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

77

Page 78: Рабочая тетрадь

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

78

Page 79: Рабочая тетрадь

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

79

Page 80: Рабочая тетрадь

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

80

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

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

mysql –uroot –ppassword course < course_db.sql

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

mysql –uroot –ppassword course

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

set names 'cp866';

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

Page 81: Рабочая тетрадь

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

81

Page 82: Рабочая тетрадь

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

82

Page 83: Рабочая тетрадь

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

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

данными

Page 84: Рабочая тетрадь

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

84

Page 85: Рабочая тетрадь

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

85

Page 86: Рабочая тетрадь

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

86

Page 87: Рабочая тетрадь

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

87

Page 88: Рабочая тетрадь

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

88

Page 89: Рабочая тетрадь

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

89

Page 90: Рабочая тетрадь

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

90

Page 91: Рабочая тетрадь

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

91

Page 92: Рабочая тетрадь

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

92

Page 93: Рабочая тетрадь

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

93

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

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

необходимую

� Введите запрос, выводящий число записей таблицы

lessons проходящих в аудитории БК-19

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

часов занятий 21.09.2006

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

Page 94: Рабочая тетрадь

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

94

Page 95: Рабочая тетрадь

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

95

Page 96: Рабочая тетрадь

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

96

Page 97: Рабочая тетрадь

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

97

Page 98: Рабочая тетрадь

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

98

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

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

необходимую

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

аудиториям

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

датам

� Модернизируйте запрос так, чтобы вывести только

занятия БК-19

Page 99: Рабочая тетрадь

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

99

Page 100: Рабочая тетрадь

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

100

Page 101: Рабочая тетрадь

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

101

Page 102: Рабочая тетрадь

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

102

Page 103: Рабочая тетрадь

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

103

Page 104: Рабочая тетрадь

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

104

Page 105: Рабочая тетрадь

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

105

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

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

необходимую

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

преподавателя Иванов Иван Иванович

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

числе и преподавателя Иванов Иван Иванович

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

курсы 10.09.2006

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

преподаватель Петров Петр Петрович

Page 106: Рабочая тетрадь

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

106

Page 107: Рабочая тетрадь

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

при МГТУ им. Баумана

Объединение запросов и

консолидация данных

Page 108: Рабочая тетрадь

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

108

Page 109: Рабочая тетрадь

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

109

Page 110: Рабочая тетрадь

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

110

Page 111: Рабочая тетрадь

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

111

Page 112: Рабочая тетрадь

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

112

Page 113: Рабочая тетрадь

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

113

Page 114: Рабочая тетрадь

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

114

� Загрузите базу данных 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 человек

Page 115: Рабочая тетрадь

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

115

Page 116: Рабочая тетрадь

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

116

Page 117: Рабочая тетрадь

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

117

Page 118: Рабочая тетрадь

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

118

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

стран

� Создайте просмотр стран Европы (и Западной

Европы и Восточной Европы и Южной)

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

Азии

� Используя INFORMATION_SCHEMA, выведите на

экран все просмотры в БД world

Page 119: Рабочая тетрадь

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

119

Page 120: Рабочая тетрадь

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

120

Page 121: Рабочая тетрадь

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

при МГТУ им. Баумана

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

триггеры

Page 122: Рабочая тетрадь

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

122

Page 123: Рабочая тетрадь

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

123

Page 124: Рабочая тетрадь

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

124

Page 125: Рабочая тетрадь

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

125

Page 126: Рабочая тетрадь

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

126

Page 127: Рабочая тетрадь

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

127

Page 128: Рабочая тетрадь

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

128

Page 129: Рабочая тетрадь

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

129

Page 130: Рабочая тетрадь

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

130

Page 131: Рабочая тетрадь

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

131

Page 132: Рабочая тетрадь

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

132

Page 133: Рабочая тетрадь

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

133

Page 134: Рабочая тетрадь

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

134

Page 135: Рабочая тетрадь

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

135

Page 136: Рабочая тетрадь

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

136

Page 137: Рабочая тетрадь

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

137

Page 138: Рабочая тетрадь

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

138

Page 139: Рабочая тетрадь

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

139

Page 140: Рабочая тетрадь

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

140

Page 141: Рабочая тетрадь

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

141

Page 142: Рабочая тетрадь

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

142

� Создайте хранимую процедуру в БД world, которая

выводит список всех таблиц и количество записей в

каждой из них

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

список индексов для каждой таблицы БД

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

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

Page 143: Рабочая тетрадь

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

143

Page 144: Рабочая тетрадь

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

144

Page 145: Рабочая тетрадь

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

145

Page 146: Рабочая тетрадь

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

146

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

� Создайте триггер для таблицы teachers, удаляющий

все записи о занятиях при удалении преподавателя

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

при удалении курса

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

таблице lessons при его обновлении кода в таблице

course

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

преподавателя

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

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

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

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

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

Page 147: Рабочая тетрадь

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

147

Page 148: Рабочая тетрадь

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

148

Page 149: Рабочая тетрадь

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

Транзакции и

типы хранилищ MySQL

Page 150: Рабочая тетрадь

Транзакции и

типы хранилищ MySQL

150

Page 151: Рабочая тетрадь

Транзакции и

типы хранилищ MySQL

151

Page 152: Рабочая тетрадь

Транзакции и

типы хранилищ MySQL

152

Page 153: Рабочая тетрадь

Транзакции и

типы хранилищ MySQL

153

Page 154: Рабочая тетрадь

Транзакции и

типы хранилищ MySQL

154

Page 155: Рабочая тетрадь

Транзакции и

типы хранилищ MySQL

155

Page 156: Рабочая тетрадь

Транзакции и

типы хранилищ MySQL

156

Page 157: Рабочая тетрадь

Транзакции и

типы хранилищ MySQL

157

Page 158: Рабочая тетрадь

Транзакции и

типы хранилищ MySQL

158

Page 159: Рабочая тетрадь

Транзакции и

типы хранилищ MySQL

159

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

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

mysql -uroot -ppassword course

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

set names 'cp866';

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

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

start transaction;

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

insert into courses (title)

values ('Новый курс');

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

команду

select title from courses;

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

Page 160: Рабочая тетрадь

Транзакции и

типы хранилищ MySQL

160

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

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

Page 161: Рабочая тетрадь

Транзакции и

типы хранилищ MySQL

161

Page 162: Рабочая тетрадь

Транзакции и

типы хранилищ MySQL

162

Page 163: Рабочая тетрадь

Транзакции и

типы хранилищ MySQL

163

Page 164: Рабочая тетрадь

Транзакции и

типы хранилищ MySQL

164

� Переключитесь на базу данных 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;

Page 165: Рабочая тетрадь

Транзакции и

типы хранилищ MySQL

165

� Измените тип хранилища для таблицы 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

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

ALTER TABLE city2 ENGINE=MyISAM;

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

Page 166: Рабочая тетрадь

Транзакции и

типы хранилищ MySQL

166

Page 167: Рабочая тетрадь

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

Оптимизация и

обслуживание сервера

MySQL 5

Page 168: Рабочая тетрадь

Оптимизация и

обслуживание сервера MySQL 5

168

Page 169: Рабочая тетрадь

Оптимизация и

обслуживание сервера MySQL 5

169

Page 170: Рабочая тетрадь

Оптимизация и

обслуживание сервера MySQL 5

170

Page 171: Рабочая тетрадь

Оптимизация и

обслуживание сервера MySQL 5

171

Page 172: Рабочая тетрадь

Оптимизация и

обслуживание сервера MySQL 5

172

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

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

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) в начале файла

� В тексте этого файла перед созданием первой

таблицы допишите команду на переключение

Page 173: Рабочая тетрадь

Оптимизация и

обслуживание сервера MySQL 5

173

кодовой страницы 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

Page 174: Рабочая тетрадь

Оптимизация и

обслуживание сервера MySQL 5

174

Page 175: Рабочая тетрадь

Оптимизация и

обслуживание сервера MySQL 5

175

Page 176: Рабочая тетрадь

Оптимизация и

обслуживание сервера MySQL 5

176

Page 177: Рабочая тетрадь

Оптимизация и

обслуживание сервера MySQL 5

177

Page 178: Рабочая тетрадь

Оптимизация и

обслуживание сервера MySQL 5

178

Page 179: Рабочая тетрадь

Оптимизация и

обслуживание сервера MySQL 5

179

Page 180: Рабочая тетрадь

Оптимизация и

обслуживание сервера MySQL 5

180

Page 181: Рабочая тетрадь

Оптимизация и

обслуживание сервера MySQL 5

181

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

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

Page 182: Рабочая тетрадь

Оптимизация и

обслуживание сервера MySQL 5

182

� Сохраните и закройте файл 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;

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

Page 183: Рабочая тетрадь

Оптимизация и

обслуживание сервера MySQL 5

183