Гость
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite база на DVD / 6 сообщений из 6, страница 1 из 1
22.09.2017, 14:24
    #39524892
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite база на DVD
Есть база SQLite которая работает с DVD диска
Хотелось бы услышать советы по оптимизации работы в данной СУБД с учётом данного требования
Размер базы может быть до ~4 гб
Совет отказаться от DVD не принимается, так как это требование заказчика
...
Рейтинг: 0 / 0
22.09.2017, 17:58
    #39525093
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite база на DVD
DVD это в смысле: не DVD-RW?

Ну тогда...
- Триггеры и внешние ключи нафиг, да и вообще любую проверку целостности данных можно вынести во внешнюю процедуру набивки данных и не хранить ничего подобного в базе.
- Естественно что и клиент к базе надо писать без единого insert/update/delete. Впрочем, если очень сильно хочется, можно в своей главной базе (или в клиенте) записать структуру базы-дополнения, и после инсталляции приложения развертывать эту базу-дополнение на HDD/SDD или даже в :memory: и подключать ее как вторичную к главной базе.
- На этапе разработки внимательно смотри какие поля используются для фильтрации таблиц и наделай кучу индексов. Можно даже несколько лишних индексов сделать, вдруг в следующей версии клиента понадобятся?
- Еще стоит обратить внимание что раз база только на выборку, то нормализация уже не нужна, и даже более того - большинство массивов стоит денормализовать вплоть до нулевого уровня. Но не стоит вылезать за размер страницы, если денормализованная таблица шире - лучше будет чуть поднять уровень нормализации. У DVD размер блока 2048 кажется, так что сразу ориентируйся на двухкилобайтные страницы.

А в общем, ничего особенно сложного в задаче нет.
Если хочешь, можешь во время разработки клиента к базе положить саму базу на удаленную машину и ограничить сетевой доступ к файлу только на чтение. Сеть тебе даст дополнительные тормоза на обращение (DVD не самое скоростное устройство), а ограничение доступа не даст по ошибке влепить в клиента функции обновления данных. Ну а приложение ответственное за наполнения данными писать на той машине где файл базы лежит.
...
Рейтинг: 0 / 0
22.09.2017, 18:39
    #39525104
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite база на DVD
White Owl,

спасибо :) проект уже существует и работает, но вот с перформансом проблемы, на жестком диске я оптимизировал более или менее :) но с ДВД как не крути тормозит люто =)
тем более, что базы очень большие, как я уже сказал по 4гб. Проиндексировал уже, всё что мог.

Идея с размером страницы, неплохая, можно будет потестирова с page_size'ом в 2 кб на DVD
с денормализацией конечно сложнее, проект то уже готовый, база уже создана и сущетвует и извлекается из другой системы. То, есть денормализацию ндао будет делать при импорте\экспорте базы.

Спасибо за ответ! :) всегда в этой ветке помогаете :)
...
Рейтинг: 0 / 0
22.09.2017, 18:46
    #39525108
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite база на DVD
Roman Mejtes,

У ДВД ужасный сиик тайм. надо все в кэш затягивать.
...
Рейтинг: 0 / 0
22.09.2017, 18:53
    #39525110
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite база на DVD
Roman Mejtesс денормализацией конечно сложнее, проект то уже готовый, база уже создана и сущетвует и извлекается из другой системы. То, есть денормализацию ндао будет делать при импорте\экспорте базы.Если база уже существует, то задача упрощается.
Просто возьми своего клиента и смотри:
- Какие выборки делает клиент?
- Те выборки которые делаются часто - оформляем в view чтобы в окошко клиента шел запрос из одного единственного view.
- Для редких выборок тоже пытаемся сделать такие-же view или максимум из двух-трех view.
- Когда клиент вместо работы с таблицами начинает делать выборки исключительно из view - выгружаешь все эти представления в таблицы новой базу.
Вот тебе и наиболее полная денормализация по мягкому варианту.
...
Рейтинг: 0 / 0
30.09.2017, 23:35
    #39528914
vict57
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite база на DVD
+ 5 копеек
если ОС - Линукс и БД - ReadOnly, то можно заархивировать базу в squashfs, копировать в память и подключать как loop-устройство (сейчас по факту стандарт в LiveCD)
Минус - будет тратиться время на копирование с DVD при монтировании
Плюс - скорость запросов намного больше. Коэф. сжатия примерно 3
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite база на DVD / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]