Подсистема хранения данных — различия между версиями
(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