2020 son, ya sabes estrategia de optimización MongoDB del ~

0 Introducción

Toda la sala de tecnología seca

文章收录在我的 GitHub 仓库,欢迎Star/fork:

Java-Entrevista-Tutorial

https://github.com/Wasabi1234/Java-Interview-Tutorial

MongoDB es un conjunto de datos de alto rendimiento, pero el uso del proceso, que de vez en cuando encontrarse con algunos problemas de rendimiento. MongoDB y otras bases de datos relacionales en comparación con, por ejemplo, SQL Server, MySQL, Oracle contrario, es relativamente nuevo, muchas personas no están familiarizados con ellos, por lo que muchos desarrolladores, DBA a menudo se centran en la realización de funciones a expensas del rendimiento requisitos. De hecho, MongoDB y SQL Server, MySQL, Oracle, como, ajustar el diseño para crear una base de datos, objetos de índice, los estados Optimizar, tendrá un gran impacto en el rendimiento.

Se recomienda clave _ID utilizar los valores por defecto en el documento, excepto la costumbre de prohibir los valores en _id

documento MongoDB tendrá una clave "_id", el valor predeterminado es objetos de objeto (identificador incluye un sello de tiempo, el ID de la máquina, ID de proceso y contador). MongoDB especifica _id cuando no se especifica la velocidad de inserción _id variar en gran medida, se ralentizará la velocidad especificada _ID insertado.

Recomendado nombre de campo corto

Y bases de datos relacionales, MongoDB necesidad colección para almacenar cada documento nombres de campo, los nombres de campo más largo se necesita más espacio de almacenamiento.

Los índices pueden mejorar la consulta de documentos, actualizar, ordenar operaciones de borrado

Así se combina con las necesidades del negocio, crear un índice apropiado

Cada índice se llevará algo de espacio, y dar lugar a recursos operación de agotamiento de inserción

Por lo tanto, cada número de índice de un conjunto de recomendaciones tratan de control dentro de 5.

Para consultas que contienen una pluralidad de teclas, crear un índice compuesto que contiene estas teclas es una buena solución. índice compuesto secuencia de teclas es importante entender el principio de los más index-prefijo izquierdo.

Interpretación: En el conjunto de prueba, por ejemplo, para crear un índice compuesto {a: 1, b: 1, c: 1}. Realizar la siguiente consulta de siete:

  db.test.find({a:”hello”}) // 1
  db.test.find({b:”sogo”, a:”hello”}) // 2
  db.test.find({a:”hello”,b:”sogo”, c:”666”}) // 3
  db.test.find({c:”666”, a:”hello”}) // 4
  db.test.find({b:”sogo”, c:”666”}) // 5
  db.test.find({b:”sogo” }) // 6
  db.test.find({c:”666”}) // 7

Por encima de consulta podría tener el índice es 1,2,3,4
consulta debe contener el índice de campos más a la izquierda, el orden de creación de índice de prevalecer, sin importar el orden de los campos de la consulta.
índice mínimo cubre la mayoría de las consultas.

Índice de TTL (time-to-live índice, con un ciclo de vida del índice), puede utilizar el tiempo de espera índice de envejecimiento de TTL del documento, un documento se borrará después de alcanzar el grado de envejecimiento

Interpretación: TTL crear un índice debe ser un tipo de fecha. TTL índice de índice de campo es un índice único, compuesto no puede ser. TTL documentos de borrado todos los años 60 de fondo de rosca para eliminar los documentos no válidos. No es compatible con la colección de longitud fija.

Es necesario crear un índice de campo en la colección, pero la colección no contiene una gran cantidad de este documento clave, se recomienda crear un índice disperso.

El índice de morosidad es intensivo, lo que significa que incluso si un documento que falta campos de índice en el índice también hay una relación correspondiente. En el índice disperso, el único índice contiene la clave aparecen documentos.

Cuando se crea un campo de texto para especificar el índice de texto, en lugar de 1 o -1. Cada juego es más que un índice de texto, pero puede indexar cualquier número de campos.

búsqueda de texto mucho más rápido, se recomienda el uso de índices de texto alternativo consultas ineficientes en la recopilación de varios campos de los documentos.

Uso findOne múltiples elementos que coinciden con la consulta en la base de datos, se le devolverá el primer proyecto en toda la galería orden natural. Si necesita devolver varios documentos, utilice el método de búsqueda.

Si la consulta sin tener que devolver todo el documento o sólo un valor de clave que se utiliza para determinar si existe, el regreso a un campo puede limitarse a reducir el uso de memoria y clientes de tráfico de red a través de la proyección (mapeo).

Puede ser proporcionado por {clave: 1} para especificar explícitamente el ámbito de retorno puede proporcionarse {clave: 0} especificada campos que deben excluirse.

Además de la consulta estilo de prefijo, la consulta no puede utilizar el índice expresiones regulares, el tiempo de ejecución es más largo que la mayoría de selección, de la restricción debe usarlos.

inserción masiva (batchInsert) puede reducir el número de veces que los datos presentados en el servidor y mejorar el rendimiento. Pero BSON Tamaño lote enviado no exceda de 48 MB.

Prohíbe que un montón de datos para resolver, MongoDB soporta actualmente 32M dentro del conjunto de resultados que desee ordenar. Si necesita orden, intenta limitar la cantidad de datos en el conjunto de resultados.

发布了380 篇原创文章 · 获赞 543 · 访问量 33万+

Supongo que te gusta

Origin blog.csdn.net/qq_33589510/article/details/104924211
Recomendado
Clasificación