Подсистема хранения данных — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(added structure)
(init main text)
Строка 1: Строка 1:
 
{{В разработке}}
 
{{В разработке}}
  
== Структура ==
+
= Структура =
 
{| class="wikitable" style="float:right; margin-left:0.8em; clear:right;"
 
{| class="wikitable" style="float:right; margin-left:0.8em; clear:right;"
 
|+ Типы памяти
 
|+ Типы памяти
Строка 60: Строка 60:
 
** Сделать их последовательными
 
** Сделать их последовательными
  
=== Страницы памяти ===
+
== Страницы памяти ==
 
* Память разбита на равные страницы
 
* Память разбита на равные страницы
 
** Прямое отображение в память
 
** Прямое отображение в память
Строка 71: Строка 71:
 
** Желательно хранить последовательно
 
** Желательно хранить последовательно
  
== Литература ==
+
[[Файл:dbms-data-access.png|470px|thumb|right|Доступ к данным]]
 +
 
 +
=== Модули системы хранения ===
 +
* Диспетчер диска
 +
** Каталог страниц
 +
** Оптимизация последовательностей страниц
 +
* Диспетчер страниц
 +
** Доступ к страницам
 +
** Распределение памяти
 +
** Выгрузка данных
 +
* Диспетчер записей
 +
** Доступ к записям
 +
 
 +
= Организация данных =
 +
* Файл – одна или несколько таблиц
 +
* Таблица – несколько страниц
 +
* Страница – несколько записей
 +
* Какие проблемы?
 +
** Записи длиннее страницы
 +
 
 +
== Список страниц ==
 +
[[Файл:dbms-page-list.png|470px|thumb|right|Список страниц]]
 +
* Диспетчер диска – последовательности
 +
* Диспетчер памяти – предвыборка
 +
 
 +
=== Идентификатор записи ===
 +
* Id записи (RID)
 +
** Id страницы
 +
** Id записи на странице
 +
* Используется во многих местах
 +
** Не должен меняться
 +
[[Файл:dbms-records-on-page.png|470px|thumb|right|Записи на странице]]
 +
[[Файл:dbms-overflow-page.png|470px|thumb|right|Страницы переполнения]]
 +
 
 +
== Сжатие данных ==
 +
* Данные на страницах можно сжимать
 +
** Больше вычислений
 +
** Меньше ввода-вывода
 +
** Часто – быстрее
 +
* Использование структуры данных
 +
** Сжатие по полям
 +
** Инкрементальное сжатие
 +
** Префиксное сжатие
 +
 
 +
= Литература =
 
* ''Дейт К. Введение в системы баз данных (Приложение Г)''
 
* ''Дейт К. Введение в системы баз данных (Приложение Г)''
 
* ''Кнут Д. Искусство программирования. Том 3. Сортировка и поиск''
 
* ''Кнут Д. Искусство программирования. Том 3. Сортировка и поиск''

Версия 13:26, 20 декабря 2021

Эта статья находится в разработке!

Структура

Типы памяти
Тип Характеристика Величина
Оперативная память Объём 16 - 256 ГБ
Цена ~5 $/ГБ
Быстродействие ~10+ ГБ/с
Время доступа 1-10 μ/с
SSD Объём 0.5 - 8 ТБ
Цена ~0.1 $/ГБ
Быстродействие 0.500-6 ГБ/с
Время доступа 0.1-0.2 мс
Жёсткие диски Объём 4 - 12 ТБ
Цена ~0.03 $/ГБ
Быстродействие 10-200 МБ/с
Время доступа 5-100 мс

СУБД могут хранить данные в оперативной памяти, на SSD, на жёстком диске.

Многие СУБД для хранения данных всё ещё оптимизируют под особенности жёсткие дисков.

Особенности жёстких дисков

  • Большое время поиска
  • Скорость чтения
    • Последовательный доступ – средняя
    • Случайный доступ – низкая
  • Сократить число обращений
    • Сделать их последовательными

Страницы памяти

  • Память разбита на равные страницы
    • Прямое отображение в память
    • Загрузка и выгрузка всей страницы
    • Для IA32 и AMD64 обычно 4КБ, 2МБ или 4МБ
  • Обработка быстрее чем чтение
  • Последовательности страниц
    • Данные одного типа
    • Частые переходы к следующей/предыдущей странице
    • Желательно хранить последовательно
Доступ к данным

Модули системы хранения

  • Диспетчер диска
    • Каталог страниц
    • Оптимизация последовательностей страниц
  • Диспетчер страниц
    • Доступ к страницам
    • Распределение памяти
    • Выгрузка данных
  • Диспетчер записей
    • Доступ к записям

Организация данных

  • Файл – одна или несколько таблиц
  • Таблица – несколько страниц
  • Страница – несколько записей
  • Какие проблемы?
    • Записи длиннее страницы

Список страниц

Список страниц
  • Диспетчер диска – последовательности
  • Диспетчер памяти – предвыборка

Идентификатор записи

  • Id записи (RID)
    • Id страницы
    • Id записи на странице
  • Используется во многих местах
    • Не должен меняться
Записи на странице
Страницы переполнения

Сжатие данных

  • Данные на страницах можно сжимать
    • Больше вычислений
    • Меньше ввода-вывода
    • Часто – быстрее
  • Использование структуры данных
    • Сжатие по полям
    • Инкрементальное сжатие
    • Префиксное сжатие

Литература

  • Дейт К. Введение в системы баз данных (Приложение Г)
  • Кнут Д. Искусство программирования. Том 3. Сортировка и поиск
  • Silberschatz A., Korth H. F., Sudarshan S. Database System Concepts