Форум сайта python.su
планируется вебсайт
на этом сайте будет работать несколько задач между собой никак не связанных
. Все задачи - чисто расчетные - то есть клиент вводит данные в вебформу и получает расчетный результат. Изменять таблицы клиент не может. Еще клиент может отправлять контактную вебформу, результаты которой сохраняются в таблице, которая периодически подчищается.
1 задача около 10 небольших таблиц - не более 100 записей в таблице
2 задача около 15 таблиц (одна таблица 3 столбца на 100.000 записей самая большая и еще три таблицы по 10.000 записей) - ни одна из таблиц не изменяется клиентом
всего возможно будет 3-5 подобных задач - то есть на каждую задачу похоже будет 10-15 таблиц. Большие таблицы больше не планируются, макс длина таблицы 1000 записей
Как это должно выглядеть технически с точки зрения базы данных чтобы все задачи одновременно стабильно работали ?
1. должен ли это быть один SQLite файл с сотней разных таблиц?
2. или какие рекомендуются другие варианты?
3. нужно ли засунуть все указанные задачи в один Django проект или сделать как-то по другому?
благодарю.
Офлайн
sqlite в целом подходит под задачи с запросами под чтениями, но вот с конкурентностью - проблема, так что те же сессии лучше выносить в что-то аля redis и тп, чтоб минимизировать операции записи.
Но я лично даже локально для разработки использую postgresql, в продакшин sqlite пихать не желательно.
При подобных объёмах данных я б особо и не парился, вам проще провести нагрузочное тестирование и определиться, но я б сразу брал psql/mysql, под нагрузкой вы скорей всего столкнетесь с https://docs.djangoproject.com/en/3.0/ref/databases/#database-is-locked-errors
Офлайн
slav0nicто есть ваше мнение - лучше все перевести на mysql и в одной базе иметь сотню таблиц которые обслуживают разные задачи ибо при определенной нагрузке SQLite может не справиться. Так? Спасибо
sqlite в целом подходит под задачи с запросами под чтениями, но вот с конкурентностью - проблема, так что те же сессии лучше выносить в что-то аля redis и тп, чтоб минимизировать операции записи.Но я лично даже локально для разработки использую postgresql, в продакшин sqlite пихать не желательно.При подобных объёмах данных я б особо и не парился, вам проще провести нагрузочное тестирование и определиться, но я б сразу брал psql/mysql, под нагрузкой вы скорей всего столкнетесь с https://docs.djangoproject.com/en/3.0/ref/databases/#database-is-locked-errors
Офлайн
При определенной нагрузке не справится ни одна база данных Вопрос только в размере этой нагрузки.
Офлайн
Postgresql берите и не парьтесь
в целом изначально sqlite был предназначен только для локальной разработки
Офлайн