Возможность использования SQLite в памяти в качестве основной базы данных для веб-приложения - PullRequest
0 голосов
/ 21 декабря 2011

Кто-нибудь использует базу данных SQLite в памяти в качестве основной базы данных для своего веб-приложения? Я пытаюсь понять целесообразность / глупость такой установки.

Если у меня есть веб-приложение с числом одновременных пользователей менее 500 и база данных небольшого размера (от 0 до 4 ГБ), какова возможность запуска SQLite в памяти с целой базой данных в ней в качестве основной базы данных для приложение?

Запуск в оперативной памяти, очевидно, затруднит «долговременный» аспект ACID, но с помощью API резервного копирования SQLite кажется, что можно поддерживать синхронизацию БД в памяти с файлом на основании БД. Я думаю, что когда пользователь выполняет команду «Сохранить / Обновить / Удалить», он может мгновенно обновить копию в памяти и затем поставить в очередь, чтобы сделать это в базе данных на основе файла. Всякий раз, когда приложение зацикливается, оно может быть просто загружено из файловой базы данных через API резервного копирования, верно?

В соответствии с документацией SQLite, одно соединение должно оставаться открытым, чтобы поддерживать работоспособность БД в памяти, поэтому это проблема, если она остается открытой часами или днями?

Ответы [ 2 ]

1 голос
/ 21 марта 2013

Вы должны использовать базу данных в памяти только для обработки данных, а не для хранения данных.Поскольку вам все равно нужно хранить данные на диске, гораздо проще и эффективнее хранить базу данных на диске.

0 голосов
/ 21 декабря 2011

Если вам нужно синхронизировать базу данных с диском, зачем использовать базу данных в памяти?Преимущество базы данных в памяти состоит в том, что данные никогда не нужно записывать в файловую систему.Поскольку вам нужно данные для записи на диск, вы превратили единственное преимущество в недостаток.Так зачем это делать?Просто поверни кеш как можно больше.

...