Достаточно ли хороша база данных sqlite (база данных django по умолчанию)?
Я создаю приложение для электронной коммерции на django, и я подумал, достаточно ли хороша база данных по умолчанию (sqlite)? Мое django приложение будет иметь около 200 различных продуктов, а для платежей я буду использовать stripe API. Я не ожидаю слишком большого трафика, когда приложение будет работать, так как это сайт только для страны, в которой я живу, с 6 миллионами жителей. Так могу ли я обойтись базой данных sqlite?
Зависит от того, где вы собираетесь его разместить. Некоторые серверы не принимают SQLite3 в качестве базы данных и требуют что-то более сложное в качестве PostgreSQL (например Heroku). Но если вы хоститесь сами (например, Rapsberry Pi), то все будет хорошо и просто, если сайт будет иметь небольшой трафик.
Хотя ваш ответ может показаться основанным на мнении, правильным ответом в любом случае будет "нет". SQLite3 - это легковесная база данных, которая обычно используется, когда ваш проект небольшой и вам не нужно запускать сервер. SQLite имеет следующие преимущества и недостатки (источник)
Преимущества SQLite
Малый след: Как следует из названия, библиотека SQLite очень легкая. Хотя занимаемое ею место зависит от системы, в которой она установлена, она может занимать менее 600 килобайт. Кроме того, она полностью самодостаточна, что означает отсутствие каких-либо внешних зависимостей, которые необходимо установить в вашей системе для работы SQLite.
User-friendly: SQLite иногда описывают как базу данных с "нулевой конфигурацией", которая готова к использованию из коробки. SQLite не работает как серверный процесс, что означает, что ее никогда не нужно останавливать, запускать или перезапускать, и она не поставляется с какими-либо конфигурационными файлами, которыми нужно управлять. Эти особенности помогают упростить путь от установки SQLite до его интеграции в приложение.
Портативность: В отличие от других систем управления базами данных, которые обычно хранят данные в виде большой партии отдельных файлов, вся база данных SQLite хранится в одном файле. Этот файл может быть расположен в любом месте иерархии каталогов и может быть передан через съемный носитель или протокол передачи файлов.
Недостатки SQLite
Ограниченный параллелизм: Хотя несколько процессов могут одновременно обращаться к базе данных SQLite и запрашивать ее, только один процесс может вносить изменения в базу данных в любой момент времени. Это означает, что SQLite поддерживает больший параллелизм, чем большинство других встроенных систем управления базами данных, но не такой большой, как клиент-серверные РСУБД, такие как MySQL или PostgreSQL.
Отсутствие управления пользователями: Системы баз данных часто поставляются с поддержкой пользователей, или управляемых соединений с заранее определенными привилегиями доступа к базе данных и таблицам. Поскольку SQLite читает и записывает непосредственно в обычный дисковый файл, единственными применимыми разрешениями доступа являются типичные разрешения доступа базовой операционной системы. Это делает SQLite неудачным выбором для приложений, требующих наличия нескольких пользователей со специальными правами доступа.
Безопасность: Механизм базы данных, использующий сервер, в некоторых случаях может обеспечить лучшую защиту от ошибок в клиентском приложении, чем бессерверная база данных, такая как SQLite. Например, блуждающие указатели в клиенте не могут повредить память на сервере. Кроме того, поскольку сервер представляет собой один постоянный процесс, база данных клиент-сервер может контролировать доступ к данным с большей точностью, чем бессерверная база данных, что позволяет осуществлять более тонкую блокировку и улучшать параллелизм.