MongoDB Indices

Cuando ponemos en producción nuestra base de datos, un tema muy importante es que tenga un rendimiento óptimo, hay que analizar si podemos mejorar las prestaciones de nuestra base de datos añadiendo índices de forma selectiva, en estos vídeos vamos a aprender fundamentos básicos de esta tecnología en MongoDb

MongoDb Indices

Cuando ponemos en producción nuestra base de datos, un tema muy importante es que tenga un rendimiento óptimo, es decir que las consultas que ejecutemos devuelvan datos enseguida, y que se consuman los mínimos recursos posibles.

Antes de empezar a plantear "meter más hierro" a un sistema (escalar en horizontal, o vertical), hay que analizar si podemos mejorar las prestaciones de nuestra base de datos añadiendo índices de forma selectiva, en estos vídeos vamos a aprender fundamentos básicos de esta tecnología en MongoDb

Temario

Conceptos básicos índices MongoDb

Empezar a jugar con MongoDb es muy fácil, y mientras trabajes con poco tráfico y un set de datos reducidos, tu motor de base de datos irá sobrado y tendrás un tiempo de respuesta razonable.

¿Qué pasa si empiezas a tener mucho tráfico, muchos datos o consultas complejas? Que tu servidor se empieza a cargar, tus consultas tardan mucho en resolverse y consumen muchos recursos... resumiendo que puedes empezar a tener problemas.

MongoDb ofrece una serie de mecanismos para mejorar el rendimiento de nuestras consultas, uno de los primeros de lo que debemos tirar es el de los índices.

Ver lección

Mongo Compass tooling índices

Tirar de terminal está muy bien, pero el json que devuelve explain a veces es un poco duro de digerir, en este vídeo vamos a ver que nos ofrece Mongo Compass, la herramienta oficial de MongoDb.

Ver lección

MongoDb índices: Rangos

En el primer vídeo de esta serie, creamos un índice simple (asociado a un sólo campo), y vimos como en una consulta filtrando por dicho campo obteníamos una mejora considerable.

Después de este primer bautismo de fuego, seguro que te surgen muchas dudas: ¿Que pása si comparo por rango de valores en las consultas? ¿Y si tengo varios parámetros? ¿Qué pasa con la ordenación? Vamos a ir desgranando las respuestas en los vídeos que vienen.

Ver lección

MongoDb índices: Ordenación

Otra área muy importante en la que los índices nos pueden ser de gran ayuda es en la de la ordenación de resultados.

Ver lección

MongoDb índices: múltiples campos

Hasta ahora hemos jugado con consultas que filtraban por un sólo campo,...en el mundo real solemos usar filtros más complejos que pueden implicar a varios campos, veamos como tratar esto con MongoDb.

Ver lección

MongoDb índices: múltiples campos II

Los índices compuestos son muy potentes, y bien configurados nos pueden servir para poder cubrir más de un caso.

Ver lección

MongoDb índices: campos de tipo array

MongoDb nos da mucha flexibilidad y potencia a la hora de modelar documentos, una de las ventajas que nos ofrece es que un documento puede tener un campo de tipo array y podemos realizar búsquedas sobre él. Esta característica tan útil nos puede llevar en escenarios exigentes a tener problemas de rendimiento: para hacer un filtrado por dichos campos tengo que recorrer la colección y además recorrer el array de cada documento para buscar los datos concretos, para solucionar esto MongoDB nos permite crear índices tanto en campos array que tienen tipos simple (por ejemplo, un string) así como campos array que contienen objetos.

Ver lección

MongoDb índices: wildcard

Hay casos, en los que no sabemos sobre que campos se van a realizar las búsquedas, y tenemos que dar un buen rendimiento desde el día cero, una opción que tenemos es ir creando índices campo por campo, ...mantener esto puede convertirse en algo pesado.

MongoDb a partir de la versión 4.2 nos ofrece los índices WildCard, que usando un carácter comodín (el asterisco) nos permite indicarle partir de que nivel en el documento cree índices para todos los campos.

Ver lección

MongoDb índices: Text Index I

Hay ocasiones en las que contamos con un campo de texto libre sobre el que queremos realizar búsquedas, por ejemplo:

  • Las opiniones de la estancia en un alquiler vacacional.
  • La descripción de la ficha de un producto.
  • El diagnóstico de un médico.
  • ...

Lo normal es que queramos realizar búsquedas por substrings... si buscamos rendimiento aquí ni los índices estándares nos van a ser de gran ayuda, ni, salvo casos contados, los filtros por expresiones regulares ¿Qué podemos hacer? Usar los índices de tipo text

Ver lección

MongoDb índices: Text Index II

Los índices de búsquedas de texto son muy potentes, pero hay que conocer ciertos detalles de su funcionamiento, o puede que no nos arrojen los resultados que esperamos.

En este vídeo vamos a ver como obtener pesos de resultados de búsqueda, como excluir palabras, y como manejarnos en lenguaje castellano.

Ver lección

¿Con ganas de aprender Backend?

En Lemoncode impartimos un Bootcamp Backend Online, centrado en stack node y stack .net, en él encontrarás todos los recursos necesarios: clases de los mejores profesionales del sector, tutorías en cuanto las necesites y ejercicios para desarrollar lo aprendido en los distintos módulos. Si quieres saber más puedes pinchar aquí para más información sobre este Bootcamp Backend.