Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornyy_praktikum_chast_2.docx
Скачиваний:
98
Добавлен:
25.02.2016
Размер:
968.87 Кб
Скачать

2. Практическая часть

Порядок выполнения работы

1) Создать несколько пользователей. Делегировать пользователям следующие права:

- права системного администратора с возможностью передавать эти права другим пользователям;

- права системного администратора без права передавать эти права другим пользователям;

- права на добавление и выборку записей из всех таблиц;

- права на удаление, добавление и выборку данных из нескольких таблиц, с указанием полей, которые разрешено изменять.

2) Научиться пользоваться командой, которая ликвидирует права.

3) Сохранить резервную копию БД на съемном носителе для дальнейшего использования.

3.Контрольные вопросы

1) Каким образом можно ограничить доступ пользователям к БД?

2) Какие виды ограничений бывают?

3) Каким образом можно ликвидировать права пользователей?

Лабораторная работа 3 Индексы и обзоры.

Цель работы: получить практические навыки работы с индексами, оптимизации работы запросов. Научиться создавать обзоры.

1.1. Краткие теоретические сведения

Индексы применяются для быстрого поиска строк с указанным значением одного столбца. Без индекса чтение таблицы осуществляется по всей таблице начиная с первой записи, пока не будут найдены соответствующие строки. Чем больше таблица, тем больше накладные расходы. Если же таблица содержит индекс по рассматриваемым столбцам, то MySQL может быстро определить позицию для поиска в середине файла данных без просмотра всех данных. Для таблицы, содержащей 1000 строк, это будет как минимум в 100 раз быстрее по сравнению с последовательным перебором всех записей. Однако в случае, когда необходим доступ почти ко всем 1000 строкам, быстрее будет последовательное чтение, так как при этом не требуется операций поиска по диску.

Все индексы MySQL (PRIMARY, UNIQUE, и INDEX) хранятся в виде B-деревьев. Строки автоматически сжимаются с удалением пробелов в префиксах и оконечных пробелов.

Индексы используются для того, чтобы:

  • Быстро найти строки, соответствующие выражению WHERE.

  • Извлечь строки из других таблиц при выполнении объединений.

  • Производить сортировку или группирование в таблице.

Предположим, что вызывается следующий оператор SELECT:

mysql> SELECT * FROM tbl_name WHERE col1=val1 AND col2=val2;

Если по столбцам col1 и col2 существует составной индекс, то соответствующие строки могут выбираться напрямую. В случае, когда по столбцам col1 и col2 существуют раздельные индексы, оптимизатор пытается найти наиболее ограничивающий индекс путем определения, какой индекс найдет меньше строк, и использует данный индекс для выборки этих строк.

MySQL применяет индексы также для сравнений LIKE, если аргумент в выражении LIKE представляет собой постоянную строку, не начинающуюся с символа-шаблона. Например, следующие команды SELECT используют индексы:

mysql> SELECT * FROM tbl_name WHERE key_col LIKE "Patrick%";

mysql> SELECT * FROM tbl_name WHERE key_col LIKE "Pat%_ck%";

В первой команде рассматриваются только строки с "Patrick" <= key_col < "Patricl", а во второй - только строки с "Pat" <= key_col < "Pau".

Следующие команды SELECT не будут использовать индексы:

mysql> SELECT * FROM tbl_name WHERE key_col LIKE "%Patrick%";

mysql> SELECT * FROM tbl_name WHERE key_col LIKE other_col;

В первой команде величина LIKE начинается с шаблонного символа. Во второй команде величина LIKE не является константой.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]