Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Cómputo
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gestión y gobernanza
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migración
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análisis
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Otros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Seguridad y cumplimiento
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Situation Awareness
Managed Threat Detection
Blockchain
Blockchain Service
Servicios multimedia
Media Processing Center
Video On Demand
Live
SparkRTC
Almacenamiento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Contenedores
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bases de datos
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicaciones empresariales
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribución de contenido y cómputo de borde
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluciones
SAP Cloud
High Performance Computing
Servicios para desarrolladores
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
aPaaS MacroVerse
KooPhone
KooDrive

Optimización de Sentencias

Actualización más reciente 2022-11-07 GMT+08:00

DDS es inherentemente una base de datos NoSQL con alto rendimiento y fuerte extensibilidad. Al igual que las bases de datos relacionales, como MySQL, Microsoft SQL Server y Oracle, el rendimiento de las instancias DDS también puede verse afectado por el diseño de bases de datos, la optimización de sentencias y la creación de índices.

A continuación se proporcionan sugerencias para mejorar el rendimiento de DDS en diferentes dimensiones:

Creación de bases de datos y colecciones

  • Utilice nombres de campo cortos para ahorrar espacio de almacenamiento. A diferencia de una base de datos RDS, cada documento DDS tiene sus nombres de campo almacenados en la colección. Se recomienda un nombre corto.
  • Limite el número de documentos de una colección para evitar el impacto en el rendimiento de la consulta. Archivar documentos periódicamente si es necesario.
  • Cada documento tiene un _id predeterminado. No cambie el valor de este parámetro.
  • Las colecciones tapadas tienen una velocidad de inserción más rápida que otras colecciones y pueden eliminar automáticamente los datos antiguos. Puede crear colecciones con límites para mejorar el rendimiento en función de sus requisitos de servicio.

Operaciones de consulta

Indices

  • Cree el número adecuado de índices para los campos que se consultan con frecuencia en función de los requisitos de servicio. Los índices ocupan algo de espacio de almacenamiento y las operaciones de inserción e indexación consumen recursos. Se recomienda que el número de índices en cada colección no exceda de 5.
  • Si la consulta de datos es lenta debido a la falta de índices, cree índices adecuados para los campos consultados con frecuencia.
  • Para una consulta que contiene varias claves de fragmento, cree un índice compuesto que contenga estas claves. El orden de las claves de fragmento en un índice compuesto es importante. Un índice compuesto admite consultas que utilizan el prefijo más a la izquierda del índice, y la consulta solo es relevante para la secuencia de creación de índices.
  • Los índices TTL se pueden utilizar para filtrar y eliminar automáticamente documentos caducados. El índice para crear TTL debe ser de tipo date. Los índices TTL son índices de campo único.
  • Puede crear índices de campo en una colección. Sin embargo, si un gran número de documentos de la colección no contiene valores clave, se recomienda crear índices dispersos.
  • Al crear índices de texto, el campo se especifica como texto en lugar de 1 o -1. Cada colección tiene un solo índice de texto, pero puede indexar varios campos.

Uso de comandos

  • El método findOne devuelve el primer documento que cumple los criterios de consulta especificados de la colección según el orden natural. Para devolver varios documentos, utilice este método.
  • Si la consulta no requiere la devolución de todo el documento o solo se utiliza para determinar si existe el valor de clave, puede usar $project para limitar el campo devuelto, reduciendo el tráfico de red y el uso de memoria del cliente.
  • Además de las consultas de prefijo, las consultas de expresión regular tardan más en ejecutarse que con selectores, y los índices no se recomiendan.
  • Algunos operadores que contienen $ en la consulta pueden deteriorar el rendimiento del sistema. Los siguientes tipos de operadores no se recomiendan en los servicios. $or, $nin, $not, $ne, y $exists.
    Tabla 1 Descripción del operador

    Operador

    Descripción

    $or

    Los tiempos de las consultas dependen del número de condiciones. Se utiliza para consultar todos los documentos que cumplen las condiciones de consulta de la colección. Se recomienda utilizar $in en su lugar.

    $nin

    Coincide con la mayoría de los índices, y se realiza la exploración completa de la tabla.

    $not

    El optimizador de consultas puede no coincidir con un índice específico, y se realiza el análisis de la tabla completa.

    $ne

    Selecciona los documentos en los que el valor del campo no es igual al valor especificado. Se escanea todo el documento.

    $exists

    Coincide con cada documento que contiene el campo.

    Para obtener más información, consulte documentos oficiales de MongoDB.

Precauciones
  • Los índices no se pueden utilizar en los operadores $where y $exists.
  • Si es necesario ordenar los resultados de la consulta, controle el número de conjuntos de resultados.
  • Si hay varios índices de campo involucrados, coloque el campo utilizado para la coincidencia exacta antes del índice.
  • Si la secuencia de valores de clave en los criterios de búsqueda es diferente de la del índice compuesto, DDS cambia automáticamente la secuencia de consulta a la misma que la secuencia de índice.
    • Operación de modificación

      Modificar un documento mediante el uso de operadores puede mejorar el rendimiento. Este método no necesita obtener y modificar datos de documentos en el servidor, y toma menos tiempo para serializar y transferir datos.

    • Inserción por lotes

      La inserción por lotes puede reducir el número de veces que los datos se envían al servidor y mejorar el rendimiento. El tamaño del BSON de los datos enviados en lotes no puede superar los 48 MB.

    • Operación agregada

      Durante la agregación, $match debe colocarse antes que $group para reducir el número de documentos que procesará el operador $group.

Utilizamos cookies para mejorar nuestro sitio y tu experiencia. Al continuar navegando en nuestro sitio, tú aceptas nuestra política de cookies. Descubre más

Comentarios

Comentarios

Comentarios

0/500

Seleccionar contenido

Enviar el contenido seleccionado con los comentarios