Estoy diseñando un nuevo proyecto web y, después de estudiar algunas opciones con el objetivo escalabilidad, que llegó con dos soluciones de bases de datos:SQLite local vs MongoDB remoto
- archivos SQLite locales cuidadosamente diseñados para una forma escalable (uno nuevo archivo de base de datos para cada X usuarios, ya que las escrituras dependerán del contenido del usuario, sin dependencia de datos entre usuarios);
- servidor MongoDB remoto (como Mongolab), como mi servidor host no sirve MongoDB.
No confío en el servidor MySQL en el host compartido actual, ya que aparece con mucha frecuencia (y tuve problemas con MySQL en otro host, también). Por la misma razón, no voy a usar postgres.
Pros de SQLite:
- Es local, por lo que debe ser más rápido (Voy a cuidar de utilizar el índice y las transacciones adecuadamente);
- No necesito que preocuparse de TCP olfateando, como protocolo de conexión Mongo is not crypted;
- No necesito preocuparme por la interrupción del servidor, ya que SQLite no tiene servidor.
Pros de MongoDB:
- Es más fácilmente escalable;
- No tengo que preocuparme por dividir las bases de datos, ya que la escalabilidad parece natural;
- No necesito que preocuparse por los cambios de esquema, como Mongo es sin esquema y SQLite doesn't fully support alter table (especialmente teniendo en cuenta el cambio de muchos archivos de producción, etc.).
Quiero ayuda para tomar una decisión (y tal vez considerar una tercera opción). ¿Cuál es mejor cuando las operaciones de escritura y lectura están creciendo?
Voy a usar Ruby.
MongoDB está optimizado para operaciones de escritura – Adrian
@Adrian: eso es absolutamente una exageración :-) –