Estoy buscando un poco de ayuda u orientación sobre qué base de datos usar para un proyecto. Si puede plantear algún punto, o anotar fallas, responder cualquier pregunta o promover cualquiera de los tipos de bases de datos para el propósito que estoy a punto de explicar, realmente lo agradecería.Pros/contras de MongoDB o MySQL para este propósito
De todas formas:
Tenemos algún tipo de software que realiza un seguimiento formas.
Tenemos usuarios que pueden tener MUCHAS propiedades diferentes, literalmente cientos de configuraciones, y no soy fanático de las tablas de MySQL tan amplias. I realmente me gusta Mongo por esto.
Tenemos diferentes tipos de formularios, cada uno puede tener campos completamente diferentes. En este momento, tenemos una lista de formularios con datos genéricos, luego , únete a la tabla correspondiente para obtener datos adicionales. Tendría todos los estos campos en un documento distinto con Mongo, y podría fácilmente agregar campos sin preocuparse.
Tenemos tarifas, notas, historial en cada formulario. Me gusta cómo en MySQL son están en una tabla diferente, y puedo obtener el historial por formulario o por usuario - igual que las notas.
Nuestra política es más o menos mantener TODOS los datos, incluso eliminados o pre-editados datos ... para siempre. ¿Debo ser preocupado por alcanzar un límite de tamaño? Probablemente estamos hablando de 100gb a fines de 2013
¿Cuántas consultas de Mongo por página atascarán las cosas? 20? 100? ¿Cambiaría si tuviera una SSD en el servidor? (En este momento, tenemos alrededor de 60 MySQL consulta una página. Esto puede mejorarse sucesivamente.)
¿Es una mala idea para mi primer proyecto Mongo sea un poco mayor poco de software? ¿Es algo que puedo aprender mientras voy?
Me gusta la insensibilidad a las mayúsculas y minúsculas de los nombres de las columnas MySQL para cosas sucias.
En MySQL, reparto las cosas en diferentes tablas. ¿Está bien, en Mongo, juntar datos que PUEDEN separarse? Ejemplo:
username, email, phone, license1 => [num,isValid], license2 => [num, isValid], notifications => [notification1...notification50000], password hash, salt, setting1, setting2...setting1000, permission1, permission2...permission1000
Por supuesto, haría uso del estilo anidado para organizar, pero ¿es mejor almacenar todo esto en "usuario" o dividirlo en configuraciones, licencias, permisos? Segundo ejemplo:formName, address, notes => [note1 => [user,note,date], note2 => [user,note,date]]
¿Hay algún problema al hacer una configuración HÍBRIDA, donde los datos del usuario son Mongo, y los datos del formulario están en MySQL?
Tenemos que ejecutar muchos informes, ¿hay limitaciones en esto en Mongo? Por ejemplo, ¿me encontraría con problemas para buscar todas las formas de los últimos 40 días con una tarifa de más de $ 10, con las tarifas en cada fila sumadas, clasificadas por la edad del usuario que las completó?
Redundancia de datos: en la nube de Amazon, MySQL tiene MASSIVE cantidades de redundancia. ¿Hay algún servicio que coincida con Mongo? ¿Es complejo entrar en eso por mi cuenta?
¿MongoDB es compatible con cualquier proveedor de "nube"? AWS hace mucho por MySQL, pero parece que estaría en mi propia para Mongo
sólo algunas cosas de la parte superior de mi cabeza - Realmente aprecio todo lo que nadie tiene que decir.