|
SQLite база на DVD
|
|||
---|---|---|---|
#18+
Есть база SQLite которая работает с DVD диска Хотелось бы услышать советы по оптимизации работы в данной СУБД с учётом данного требования Размер базы может быть до ~4 гб Совет отказаться от DVD не принимается, так как это требование заказчика ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 14:24 |
|
SQLite база на DVD
|
|||
---|---|---|---|
#18+
DVD это в смысле: не DVD-RW? Ну тогда... - Триггеры и внешние ключи нафиг, да и вообще любую проверку целостности данных можно вынести во внешнюю процедуру набивки данных и не хранить ничего подобного в базе. - Естественно что и клиент к базе надо писать без единого insert/update/delete. Впрочем, если очень сильно хочется, можно в своей главной базе (или в клиенте) записать структуру базы-дополнения, и после инсталляции приложения развертывать эту базу-дополнение на HDD/SDD или даже в :memory: и подключать ее как вторичную к главной базе. - На этапе разработки внимательно смотри какие поля используются для фильтрации таблиц и наделай кучу индексов. Можно даже несколько лишних индексов сделать, вдруг в следующей версии клиента понадобятся? - Еще стоит обратить внимание что раз база только на выборку, то нормализация уже не нужна, и даже более того - большинство массивов стоит денормализовать вплоть до нулевого уровня. Но не стоит вылезать за размер страницы, если денормализованная таблица шире - лучше будет чуть поднять уровень нормализации. У DVD размер блока 2048 кажется, так что сразу ориентируйся на двухкилобайтные страницы. А в общем, ничего особенно сложного в задаче нет. Если хочешь, можешь во время разработки клиента к базе положить саму базу на удаленную машину и ограничить сетевой доступ к файлу только на чтение. Сеть тебе даст дополнительные тормоза на обращение (DVD не самое скоростное устройство), а ограничение доступа не даст по ошибке влепить в клиента функции обновления данных. Ну а приложение ответственное за наполнения данными писать на той машине где файл базы лежит. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 17:58 |
|
SQLite база на DVD
|
|||
---|---|---|---|
#18+
White Owl, спасибо :) проект уже существует и работает, но вот с перформансом проблемы, на жестком диске я оптимизировал более или менее :) но с ДВД как не крути тормозит люто =) тем более, что базы очень большие, как я уже сказал по 4гб. Проиндексировал уже, всё что мог. Идея с размером страницы, неплохая, можно будет потестирова с page_size'ом в 2 кб на DVD с денормализацией конечно сложнее, проект то уже готовый, база уже создана и сущетвует и извлекается из другой системы. То, есть денормализацию ндао будет делать при импорте\экспорте базы. Спасибо за ответ! :) всегда в этой ветке помогаете :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 18:39 |
|
SQLite база на DVD
|
|||
---|---|---|---|
#18+
Roman Mejtes, У ДВД ужасный сиик тайм. надо все в кэш затягивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 18:46 |
|
SQLite база на DVD
|
|||
---|---|---|---|
#18+
Roman Mejtesс денормализацией конечно сложнее, проект то уже готовый, база уже создана и сущетвует и извлекается из другой системы. То, есть денормализацию ндао будет делать при импорте\экспорте базы.Если база уже существует, то задача упрощается. Просто возьми своего клиента и смотри: - Какие выборки делает клиент? - Те выборки которые делаются часто - оформляем в view чтобы в окошко клиента шел запрос из одного единственного view. - Для редких выборок тоже пытаемся сделать такие-же view или максимум из двух-трех view. - Когда клиент вместо работы с таблицами начинает делать выборки исключительно из view - выгружаешь все эти представления в таблицы новой базу. Вот тебе и наиболее полная денормализация по мягкому варианту. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 18:53 |
|
SQLite база на DVD
|
|||
---|---|---|---|
#18+
+ 5 копеек если ОС - Линукс и БД - ReadOnly, то можно заархивировать базу в squashfs, копировать в память и подключать как loop-устройство (сейчас по факту стандарт в LiveCD) Минус - будет тратиться время на копирование с DVD при монтировании Плюс - скорость запросов намного больше. Коэф. сжатия примерно 3 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2017, 23:35 |
|
|
start [/forum/topic.php?fid=54&tid=2008484]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 252ms |
total: | 397ms |
0 / 0 |