Первая лекция по Администрированию Баз Данных

mysqld – исполняемый файл демона ?Запуск ?Сервис ?Исполняемый файл ?Скрипт ?mysqld_safe ?mysql.server ?При запуске читает файл конфигурации mysql.conf (my.cnf) ?В файле прописываются параметры сервера ?Параметры можно указать в командной строке Архитектура СУБД mySQL

shell> mysqld --verbose --help

Возможности MySQL

ANSI SQL

  1. Кроссплатформенность
  2. Хранимые процедуры
  3. Триггеры
  4. Курсоры - указатель на область памяти
  5. Обновляемые представления - (виртуальное представление - то что строится каждый раз при запросе) - обновляемые представления похожи на временные таблицы - то есть это таблица, которая строится на основе запросы и строится , в частности , на основе аналитических данных.
  6. Подключаемые «движки» для хранения данных - возможность хранить данные в разных структурах

Файл Конфигурации -

[client] // клиентское приложение
port=3306
 [mysql]  // настройка клиента командной строки
default-character-set=latin1
 [mysqld] // настройка "демона" базы
port=3306
 basedir="C:/Program Files/MySQL/MySQL Server 5.0/" 
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"
 default-character-set=latin1 
default-storage-engine=INNODB 
max_connections=341 
query_cache_size=9M table_cache=700
 myisam_max_sort_file_size=100G 
myisam_sort_buffer_size=8M

Конфигурационные операции

basedir Каталог инсталляции MySQL
datadir Каталог, где хранятся файлы данных
init-file Имя файла инициализации (SQL), выполняется при старте open-files-limit Ограничение на кол-во доступных дескрипторов
skip-grant-tables Старт сервера без учета привилегий и паролей
transaction-isolation Уровень изоляции транзакций (READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE) Конфигурационные переменные

shell> mysqld –-basedir=/my/data –-init-file=my.init

Типы таблиц ?Транзакционные
Inno DB
?Нетранзакционные
?MyISAM -
?Memory - хранение данных исключительно в памяти
Merge ?CSV ?Archive ?Кластерные
?NDB - для кластерной системы (для mysql - при реализации кластера требуется как минимум три машины) - таблицы хра
Тип таблиц по умолчанию - MyIsam (на самом деле - тот, который вы выбрали при установке)

InnoDB
InnoDB (транзакционный)
Свойства:

  1. ?Блокировки на уровне записей
  2. ?Неблокирующее чтение
  3. ?Таблицы хранятся в одном файле
  4. ?Для служебных целей отдельно создается файл структуры таблицы .FRM
  5. ?Транзакции реализуются посредством журнальных файлов - то есть -предположим, что у нас есть таблица и нам надо поменять какую-то строчку -мы используем оператор
     UPDATE ....

    это команда записывается в журнал - и только потом уже производятся реальные изменения в структурах данных - это позволяет в "случае чего" "откатиться"

MyISAM

  1. Каждая таблица хранится в 3-х файлах
    • .FRM - структура таблицы
    • .MYD (MYData) – данные
    • .MYI (MYIndex) – индекс
  2. ?Таблицы – платформонезависимые
  3. ?Поддержка автоинкрементности
  4. ?Поддержка восстановления (mysqlcheck)
  5. ?Поддержка сжатия (myisampack)
  6. ?Нет поддержки ссылочной целостности
  7. ?B-tree индексы
  8. ?Блокировки на уровне таблиц

Способы хранения таблиц в СУБД MySQL - подробнее

Memory

  1. ?Все данные хранятся в памяти - то есть движок очень быстрый
  2. ?Структура таблиц хранится в файле .FRM
  3. ?B-Tree индексы
  4. ?Не поддерживаются типы хранящие большие бинарные данные типа - BLOB, TEXT
  5. ?При перезапуске сервера данные теряются (но не структура таблиц)

Использование -
Например есть сеть терминалов и сервер - с терминалов постоянно идут транзакции - которые на сервере нужно обрабатывать довольно быстро - записывать данные в память - эта память(таблицу) как раз и можно организовать как Memory

Merge

  1. ?Объединение нескольких таблиц MyISAM одинаковой структуры - чтобы обращаться к этому объединению как к одной таблице
  2. ?Создается файл с расширением .MRG
  3. ?При удалении MERGE таблицы удаляется только псевдоним

Пример -
имеется 15 тысяч скважин = с ни каждые 10 минут (или чаще) счётчики сбрасывают данные - то есть поток данных огромный
- данные в таком случае хранят в нескольких таблица - так вот их можно объединить в случае необходимости.

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

  1. ?Для архивного хранения больших объемов данных
  2. ?Сжатие данных
  3. ?Блокировка на уровне строк
  4. ?Отсутсвие индексов
  5. ?Нет поддержки удаления и обновления данных

Дескрипторы Файлов :

При работе с файлами ,хранящими структуры таблиц их приходится постоянно открывать и закрывать - это расходует ресурсы системы. - используются различные приёмы.

  1. Сервер mySQL – один процесс со множеством потоков
  2. ?Для каждого подключения создается отдельный поток
  3. ?Каждое подключение использует дескриптор файлов для доступа к файлам
  4. ?Количество дескрипторов для процесса ограничивается операционной системой
  5. ?Поддерживается кэш дескрипторов - то есть при закрытии файла дескриптор сохраняется , а потом не создаётся заново, а используется готовый

ТИПЫ ДАННЫХ MYSQL
(здесь таблица)

Клиентские программы.

  1. mysql – утилита командной строки для работы с MySQL - базовая утилита для взаимодействия пользователя с MYSQL
  2. mysqladmin – утилита командной строки для выполнения административных задач
  3. mysqlcheck – утилита для проверки, исправления и оптимизации таблиц (MyISAM)
  4. mysqldump – утилита для выгрузки данных в формате TEXT, SQL, XML
  5. mysqlshow – отображает статус баз данных, таблиц, столбцов и индексов Клиентские программы

Администрирование баз данных