drupal 7 – NoSQL frente a otras configuraciones de SQL Drupal

Pregunta:

¿Cuáles son las ventajas de ejecutar NoSQL (ex MongoDB) sobre MySQL, PostGRE SQL o MSSQL en Drupal? ¿Se obtienen las ventajas de simplemente usar el almacenamiento o es necesario cambiar alguna configuración de Drupal?

Respuesta:

MongoDB se puede utilizar para almacenar la mayoría o todas sus entidades en un almacenamiento rápido orientado a documentos. Este tipo de almacenamiento se escala mucho mejor que el almacenamiento estándar basado en SQL que tenemos en el núcleo de Drupal (que se basa en un esquema de "una tabla por campo").

En el estado actual de Drupal 7, tendrías:

  • La tabla base de la entidad almacenada en SQL (es decir, la tabla de usuarios, la tabla de nodos, etc.)
  • Todos los campos almacenados en SQL
  • Las propiedades de las entidades de sus tablas base duplicadas en MongoDB

Esto permite consultas rápidas sobre las entidades en MongoDB y la capacidad de agregar índices complejos que no son compatibles con la base de datos SQL Opensource (incluidos los índices en las tablas). Al mismo tiempo, no pierde interoperabilidad porque la tabla base de la entidad todavía se almacena en SQL y, por lo tanto, se puede unir mediante módulos que todavía son solo de SQL (como Flag).

Este tipo de consulta rápida está disponible gracias al mecanismo EntityFieldQuery, una forma de construir consultas sobre entidades, sus propiedades y sus campos de manera abstracta. La implementación predeterminada en el núcleo traduce esas consultas a SQL, pero el módulo MongoDB tiene una implementación con todas las funciones que puede satisfacer esas consultas de MongoDB directamente.

Gracias al backend EntityFieldQuery para Vistas , puede aprovechar fácilmente este poder mediante el uso de las herramientas a las que está acostumbrado. El único inconveniente es que las relaciones no son compatibles (pero en la práctica rara vez las necesita de todos modos, y esto se puede solucionar insertando datos adicionales en el objeto de la entidad y agregándolos exponiéndolos como propiedades adicionales de la entidad).

En pocas palabras, tan pronto como el rendimiento de la consulta es un problema en su proyecto, lo que sucede tan pronto como tiene un conjunto de datos significativo (digamos que comienza en unas pocas décimas de miles de entidades en un tipo de entidad dado), MongoDB es una ganancia neta por muy pocos inconvenientes. Muy recomendable.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım