Verificación de la realidad aquí … 100K visitantes por mes son aproximadamente 3K / día, que es, aproximadamente, un poco más de un visitante cada 30 segundos más o menos.
SQLite (incluido en las bibliotecas estándar de Python como sqlite3 módulo) es más que capaz de manejar eso. Incluso suponiendo que los picos de tráfico 10x o 100x no representarían el más mínimo problema para este módulo.
Por supuesto, también puede usar MySQL o PostgreSQL … pero es posible que desee comenzar con SQLite y crecer desde allí. Si usa un ORM como SQLAlchemy, entonces debería ser relativamente fácil pasar de un RDBMS a otro si alguna vez elige hacerlo.
- ¿Cuáles son las características / requisitos comunes de las aplicaciones web escalables (referencias, por favor: D)?
- Cómo construir el backend del sitio web que planeo crear
- ¿Cuáles son las cosas que deberían importarme al desarrollar aplicaciones web?
- ¿Qué tipo de aplicación web necesitaría para crear un sitio donde los usuarios puedan seguir su progreso?
- ¿Cuáles son algunos ejemplos de aplicaciones web de 2 niveles y 3 niveles?
(Nota: SQLite no es un RDBMS tradicional. Es un conjunto de bibliotecas que implementan funciones de acceso a archivos que, a través del bloqueo del sistema operativo / sistema de archivos, proporcionan las mismas características de ACID que uno espera de un RDBMS de cliente / servidor, y que implementa API en una versión de SQL que es casi tan compatible con otros dialectos de SQL como MySQL con PostgreSQL, por ejemplo: el controlador DBAPI SQLite3 de Python proporciona seguridad de subprocesos en el “nivel 1” (cree una conexión separada para cada subproceso en su grupo de acceso de base de datos)).
La ventaja de MySQL sería que hay muchas, muchas personas que están familiarizadas con él (si elige contratar o contratar un trabajo). La desventaja es que normalmente debería tener a alguien allí con algo de experiencia y capacitación específicamente en la administración de servidores MySQL. Esta es una especialidad dentro de la administración de sistemas.
Existen preocupaciones similares para PostgreSQL, pero el grupo de personas que se sienten cómodas al administrarlo es algo menor. (Podría decirse que las personas que afirman sentirse cómodas administrando PostgreSQL son mucho más propensas a ser competentes que muchas de las multitudes que afirman alegremente su experiencia en MySQL).
SQLite3 realmente no tiene necesidades administrativas. Estos son archivos regulares a los que accede una biblioteca sofisticada en lugar de un servicio de red. Hacer una copia de seguridad de sus datos debe ser una cuestión de usar LVM u otras características de instantánea del sistema de archivos, copiar los archivos y luego liberar la instantánea, aunque también hay opciones más sofisticadas para esto: API de copia de seguridad SQLite).
Por lo tanto, sugeriría probar SQLite3.