Существует API для Скрученных приложений, чтобы говорить с базой данных масштабируемым способом: twisted.enterprise.dbapi
Запутывающая вещь, который база данных выбрать?
База данных будет иметь Скрученное приложение, которое главным образом делает, вставляет и обновления и относительно немного выборов, и затем другие клиенты строго только для чтения, которые получают доступ к базе данных, непосредственно делающей, выбирают.
(Пользователи только для чтения не обязательно выбирают данные, которые вставляет Скрученное приложение; не, как будто база данных используется в качестве очереди сообщений),
Мое понимание - который я хотел бы corrected/adviced - то, что:
Масштабируемость
twisted.enterprise.adbapi
не обязательно является интерфейсом для масштабируемого взаимодействия с базами данных. Масштабируемость - это проблема, которую нужно решать отдельно. Единственное, на что действительно претендует twisted.enterprise.adbapi
, - это возможность использовать модули DB-API 2.0 без блокировки, которая обычно подразумевается.
Постгрес
Да. Это правильный ответ. Я не думаю, что все привязки Python являются заброшенными программами - например, psycopg2, похоже, активно поддерживается. Фактически, они просто добавили несколько новых привязок для асинхронного доступа, которые Twisted может в конечном итоге предложить интерфейс.
SQLite3 тоже довольно крутой. Возможно, вы захотите сделать возможным использование Postgres или SQLite3 в своем приложении; ваши модульные тесты определенно будут лучше работать, например, с SQLite3, даже если вы хотите развернуть их против Postgres.
Другое?
Трудно понять, подойдет ли другая база данных полностью (что-то нереляционная, возможно) вашему приложению лучше, чем Postgres.Это во многом зависит от конкретных данных, которые вы собираетесь хранить, и запросов, которые вам нужно выполнить. Если в вашей базе данных есть интересные отношения, Postgres действительно кажется хорошим ответом. Если все ваши запросы выглядят как «SELECT foo, bar FROM baz», возможно, существует более простой вариант с более высокой производительностью.