Con las bases de datos NoSQL demostrando su valía sobre el enfoque SQL heredado, la siguiente pregunta es inevitablemente "¿cómo optimizamos nuestros procesos tanto como sea posible?" Muchas bases de datos han utilizado la Optimización Basada en Reglas (RBO) estática para optimizar las cargas de trabajo - pero esto tiene sus límites. La optimización basada en costes (CBO) permite una optimización mucho más ágil y automatizada, utilizando el menor número posible de recursos. En este sentido, Couchbase introdujo su Optimizador Basado en Costes para JSON como una vista previa en Couchbase Server 6.5, y estamos encantados de anunciar que nuestra tecnología de Optimización Basada en Costes está pendiente de patente.
¿Por qué elegir CBO en lugar de RBO? Imagina la escena: llegas tarde a una reunión en la otra punta de la ciudad. Consultas Google Maps y encuentras lo que parece, a ojos inexpertos, la ruta más rápida posible. Pero cuando te pones en marcha, pronto te das cuenta de que la ruta te lleva directamente a una zona de tráfico denso, carreteras cortadas y, en algunos puntos, incluso en dirección contraria por una calle de sentido único.
Naturalmente, una aplicación como Google Maps debería tener en cuenta los factores que afectan a tu viaje, en lugar de elegir automáticamente la ruta que recorre la distancia más corta posible. Esperarías que te mantuviera alejado del tráfico denso y te mostrara una sugerencia de ruta dinámica basada en todos los factores que podrían afectar a tu viaje. No esperes nada menos que el viaje más eficiente posible, ya sea la menor duración del trayecto, el menor consumo de combustible o el menor coste de tarifas o peajes.
El CBO desempeña la misma función para las cargas de trabajo de las bases de datos. RBO debe seguir siempre las mismas reglas rígidas - por ejemplo, "dame el viaje más corto posible" produciría el primer escenario anterior. En comparación, el CBO toma metadatos y estadísticas para seleccionar qué plan de ejecución de consultas utilizará la menor cantidad posible de recursos, como memoria, CPU o E/S - o, en nuestro ejemplo anterior, tiempo. En última instancia, un CBO inteligente siempre le ofrecerá la opción más rentable, evitando posibles obstáculos.
El optimizador basado en costes de Couchbase para JSON reduce la latencia de las consultas y facilita el trabajo de los desarrolladores. CBO está disponible como una característica complementaria a la existente Optimización Basada en Reglas, mejorando la eficiencia de la consulta para un gran número de casos. Esto se consigue mediante una mejor selección de índices que su homólogo RBO, junto con una mejor selección del tipo JOIN y un mejor ordenamiento del propio procesamiento, todo lo cual afecta a la latencia de la consulta. En esencia, los desarrolladores se limitarán a escribir la consulta y dejar que el CBO determine el mejor camino a seguir.
Para saber más sobre nuestro CBO para JSON, eche un vistazo a algunos de nuestros otros blogs:
Menos es más: ¿Por qué un optimizador basado en costes?
Optimizador basado en costes para Couchbase N1QL (SQL para JSON)
Otro material de referencia:
Selección de rutas de acceso en un sistema de gestión de bases de datos relacionales