Сообщество / Базы данных

для маленького бота sqlite хватит или сразу postgres

tema_py
Junior
Сообщения: 58
Репутация: 42
Дата регистрации:
18.08.2026
АВТОР ТЕМЫ18 сент. 2026 г., 21:20 (GMT+3)
Бот подрос, пишу историю диалогов и пару таблиц. Сейчас всё в sqlite, файлик рядом с ботом, и мне норм. Но каждый второй гайд кричит «бери postgres как взрослый». Реально ли sqlite для бота на пара сотен пользователей упрётся, или это карго-культ «postgres потому что серьёзно»? Не хочется тащить целую базу и её бэкапить ради таблички на 3 колонки, но и переписывать потом под нагрузкой тоже не хочется.
1
kate_ekb
Junior
Сообщения: 70
Репутация: 39
Дата регистрации:
12.08.2026
18 сент. 2026 г., 21:50 (GMT+3)
tema_py для бота на пара сотен юзеров с записью «история + пара таблиц» sqlite за глаза, не слушай карго-культ. упрётся он на многих ОДНОВРЕМЕННЫХ записях (sqlite лочит базу на запись целиком), вот когда у тебя десятки параллельных write в секунду — тогда postgres. у бота такого обычно нет. включи WAL режим у sqlite и живи. переписать на postgres, когда реально упрёшься, — день работы, а не трагедия.
1
M
mike_pg
Junior
Сообщения: 14
Репутация: 5
Дата регистрации:
15.09.2026
18 сент. 2026 г., 22:15 (GMT+3)
tema_py как человек, который postgres как раз выбрал и потом ловил на нём oom — не бери базу мощнее задачи. sqlite бэкапить проще некуда: скопировал файл (лучше через `.backup`, не на горячую). postgres — это отдельный процесс, память, тюнинг shared_buffers, всё то, на чём я недавно горел. если у тебя нет параллельной нагрузки и сложных запросов — sqlite честнее. kate_ekb про WAL верно, без него будешь ловить database is locked.
0
kate_ekb
Junior
Сообщения: 70
Репутация: 39
Дата регистрации:
12.08.2026
19 сент. 2026 г., 09:50 (GMT+3)
tema_py к слову, sqlite на сетевую/докерную шару не клади — вот там он и правда начнёт ловить блокировки и биться. локальный файл на диске сервера — норм, шара по сети — нет. частая ошибка «sqlite тормозит», а это его по nfs положили.
0
nesterov
Junior
Сообщения: 25
Репутация: 20
Дата регистрации:
08.08.2026
19 сент. 2026 г., 20:40 (GMT+3)
tema_py правило вместо холивара: база должна соответствовать нагрузке, а не самолюбию. sqlite для бота — нормальный инженерный выбор, а не «несерьёзно». что серьёзно — так это бэкап: sqlite делай `.backup` по расписанию в другое место и раз в месяц открывай копию. postgres берут, когда нужна параллельная запись, роли, сложные запросы. нужно это боту? нет. вырастет — перейдёшь, данные из sqlite переносятся спокойно.
1
tema_py
Junior
Сообщения: 58
Репутация: 42
Дата регистрации:
18.08.2026
19 сент. 2026 г., 21:10 (GMT+3)
kate_ekb WAL включил, «database is locked» как раз пару раз и ловил, теперь понятно откуда) mike_pg «не бери базу мощнее задачи» — успокоил, а то я уже почти полез postgres поднимать из чувства вины. nesterov `.backup` по cron поставил, на горячую копировал раньше, каюсь. Остаюсь на sqlite, спасибо что отговорили от переусложнения.
0
H
hopstop
Junior
Сообщения: 17
Репутация: 11
Дата регистрации:
03.09.2026
19 сент. 2026 г., 22:20 (GMT+3)
tema_py у меня бот модерации на sqlite, пара сотен человек в чате, живёт год, ни разу не уперся. WAL включил после того как «database is locked» пару раз словил. postgres городить под это — это как раз тот карго-культ. спасибо, что тред есть, буду новичкам кидать.
2