studio - Rendimiento de Firebase con grandes conjuntos de datos
firebase javascript (1)
Estoy probando firebase para un proyecto que puede tener un número razonablemente grande de claves, potencialmente millones.
He probado cargar unos 10k de registros usando un nodo, y el rendimiento de carga parece bueno. Sin embargo, la interfaz de usuario web "FORGE" se vuelve inútilmente lenta y representa cada registro individual si amplío mi nodo raíz.
¿Firebase no está diseñado para este volumen de datos o estoy haciendo algo mal?
Es simplemente las limitaciones de la interfaz de usuario de Forge. Todavía es bastante rudimentario.
Las funciones en tiempo real de Firebase no solo son adecuadas, sino que están diseñadas para grandes conjuntos de datos. El hecho de que los registros se transmitan en tiempo real es perfecto para esto.
El rendimiento es, al igual que con cualquier aplicación de datos de gran tamaño, tan bueno como su implementación. Así que aquí hay algunos inconvenientes para tener en cuenta con grandes conjuntos de datos.
DENORMALIZAR, DENORMALIZAR, DENORMALIZAR
Si un conjunto de datos se iterará y sus registros se contarán en miles, guárdelo en su propia ruta.
Esto es malo para iterar grandes conjuntos de datos:
/users/uid
/users/uid/profile
/users/uid/chat_messages
/users/uid/groups
/users/uid/audit_record
Esto es bueno para iterar conjuntos de datos grandes:
/user_profiles/uid
/user_chat_messages/uid
/user_groups/uid
/user_audit_records/uid
Evite el "valor" en grandes conjuntos de datos
Use child_added
ya que el value
debe cargar todo el conjunto de registros al cliente.
Esté atento a las operaciones de value
oculto en los niños
Cuando llama a child_added
, básicamente está llamando value
en cada registro de niño. Entonces, si esos niños contienen grandes listas, tendrán que cargar todos esos datos para regresar. Por lo tanto, la sección DENORMALIZAR arriba.