Table des matières
技巧一、尽量减少磁盘访问
技巧二、使用索引减少内存占用
技巧三、不要到处使用索引
技巧四、索引覆盖查询
技巧五、使用复合索引加快多个查询
技巧六、通过建立分级文档加快扫描
技巧七、AND型查询要点
技巧八:OR型查询要点
Maison base de données tutoriel mysql 【MongoDB】MongoDB之八大优化技巧

【MongoDB】MongoDB之八大优化技巧

Jun 07, 2016 pm 04:10 PM
mongodb 优化 réduire 技巧 磁盘

技巧一、尽量减少磁盘访问 内存访问要比磁盘访问快得多。所以使用优化的本质就是尽可能地减少对磁盘的访问。 内存的读取速度要比磁盘速度快一百万倍。读磁盘要消耗很长时间。几种简单的办法:使用SSD(固态硬盘);增加内存可以减少对硬盘的读取,让常用的文

技巧一、尽量减少磁盘访问

内存访问要比磁盘访问快得多。所以使用优化的本质就是尽可能地减少对磁盘的访问。
内存的读取速度要比磁盘速度快一百万倍。读磁盘要消耗很长时间。几种简单的办法: 使用SSD(固态硬盘);增加内存可以减少对硬盘的读取,让常用的文档在内存中;

技巧二、使用索引减少内存占用

索引是有序的,所以不必遍历全部项。当查询时候会先根据索引查到索引中的结果,然后符合条件的文档加载到内存中,从而减少内存占用。

技巧三、不要到处使用索引

这里要注意,不是所有的查询都可以用索引的。索引一般用在返回结果只是总体数据的一小部分的时候。根据经验,一旦要大约返回集合一半的数据就不要使用索引了。
若是已经对某个字段建立了索引,又想在大规模模糊查询时候不使用它(因为使用时候可能较低效)可以使用自然排序,用{“$natural”:1}来强制mongodb禁用索引。自然排序就是“按照磁盘上的存储顺序返回数据”,这样mongodb就不会使用索引了。

技巧四、索引覆盖查询

如果只想返回某些字段且所有这些字段都可放在索引中,mong odb可以做索引覆盖查询(covered index query),这种查询不会访问指针指向的文档,二是直接用索引的数据返回结果。
例如: db.foo.ensuIndex({x:1, y :1,z:1}) 现在查询被索引的字段,并只要求返回这些字段,mongodb就没必要加载整个文档。 db,foo.find({x: ceriteria, y: ceriteria})
这样的查询仅仅访问了索引的数据,而没有访问整个集合的数据;

技巧五、使用复合索引加快多个查询

查询只要和索引开头部分匹配就能利用索引,所以创建索引时要考虑这些查询依赖的所有字段。并且根据各个字段查询的频率定义索引字段顺序;

技巧六、通过建立分级文档加快扫描

将数组组织有层次话,不仅可以让其看着更有条理,还可以让mongodb在偶尔没有索引时候也能快速查询。 如果文档没有层次结构的话,mongodb必须遍历文档中的每个字段。合理使用层次可以减少mongodb对字段的访问。

技巧七、AND型查询要点

假设要查询满足条件A,B和C的文档,满足A的文档有4万,满足B的有9K,满足C的是200,那么应该用C and B and A 这样只需要查询200条记录。
这就是说要是已知某个查询条件更加苛刻,那要将放置在最前面;

技巧八:OR型查询要点

OR型查询与AND查询恰好相反,匹配最多的查询语句放在最前面,因为Mongodb每次都要匹配不在结果集中的文档。







Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle version est généralement utilisée pour mongodb ? Quelle version est généralement utilisée pour mongodb ? Apr 07, 2024 pm 05:48 PM

Il est recommandé d'utiliser la dernière version de MongoDB (actuellement 5.0) car elle fournit les dernières fonctionnalités et améliorations. Lors de la sélection d'une version, vous devez prendre en compte les exigences fonctionnelles, la compatibilité, la stabilité et le support de la communauté. Par exemple, la dernière version comporte des fonctionnalités telles que les transactions et l'optimisation du pipeline d'agrégation. Assurez-vous que la version est compatible avec l'application. Pour les environnements de production, choisissez la version avec support à long terme. La dernière version bénéficie d'un support communautaire plus actif.

La différence entre nodejs et vuejs La différence entre nodejs et vuejs Apr 21, 2024 am 04:17 AM

Node.js est un environnement d'exécution JavaScript côté serveur, tandis que Vue.js est un framework JavaScript côté client permettant de créer des interfaces utilisateur interactives. Node.js est utilisé pour le développement côté serveur, comme le développement d'API de service back-end et le traitement des données, tandis que Vue.js est utilisé pour le développement côté client, comme les applications monopage et les interfaces utilisateur réactives.

Que signifie MongoDB ? Que signifie MongoDB ? Apr 07, 2024 pm 05:57 PM

MongoDB est un système de base de données distribuée orienté document utilisé pour stocker et gérer de grandes quantités de données structurées et non structurées. Ses concepts de base incluent le stockage et la distribution de documents, et ses principales fonctionnalités incluent le schéma dynamique, l'indexation, l'agrégation, la réduction de mappage et la réplication. Il est largement utilisé dans les systèmes de gestion de contenu, les plateformes de commerce électronique, les sites Web de réseaux sociaux, les applications IoT et le développement d'applications mobiles.

Comment définir un disque de sauvegarde pour les fichiers téléchargés sous Windows 11 Comment définir un disque de sauvegarde pour les fichiers téléchargés sous Windows 11 Apr 20, 2024 pm 06:32 PM

Pour les utilisateurs qui sont nouveaux sur le système Windows 11, le chemin de téléchargement des fichiers suivra généralement les paramètres par défaut du système, et les fichiers sont souvent enregistrés sur le disque système. À long terme, cela peut affecter les performances globales de l'ordinateur en les occupant. trop d'espace disque système. Afin de gérer et d'allouer l'espace de stockage de manière plus rationnelle, il est important d'apprendre à personnaliser le disque de sauvegarde pour les fichiers téléchargés dans le système Windows 11. Cet article expliquera en détail comment définir de manière flexible le disque cible pour les fichiers téléchargés dans Windows 11 afin de répondre aux besoins de stockage personnalisés des utilisateurs. Si c'est ce dont vous avez besoin, vous souhaiterez peut-être continuer à lire et nous vous présenterons les étapes détaillées de cette fonction pratique. Méthode de fonctionnement 1. Double-cliquez pour ouvrir « Ce PC » sur le bureau. 2. Recherchez ensuite la nouvelle interface dans la colonne de gauche

Optimisation des programmes C++ : techniques de réduction de la complexité temporelle Optimisation des programmes C++ : techniques de réduction de la complexité temporelle Jun 01, 2024 am 11:19 AM

La complexité temporelle mesure le temps d'exécution d'un algorithme par rapport à la taille de l'entrée. Les conseils pour réduire la complexité temporelle des programmes C++ incluent : le choix des conteneurs appropriés (tels que vecteur, liste) pour optimiser le stockage et la gestion des données. Utilisez des algorithmes efficaces tels que le tri rapide pour réduire le temps de calcul. Éliminez les opérations multiples pour réduire le double comptage. Utilisez des branches conditionnelles pour éviter les calculs inutiles. Optimisez la recherche linéaire en utilisant des algorithmes plus rapides tels que la recherche binaire.

Où sont les fichiers de la base de données mongodb ? Où sont les fichiers de la base de données mongodb ? Apr 07, 2024 pm 05:42 PM

Le fichier de base de données MongoDB se trouve dans le répertoire de données MongoDB, qui est /data/db par défaut, qui contient .bson (données du document), ns (informations de collecte), journal (enregistrements d'opération d'écriture), wiredTiger (données lors de l'utilisation de WiredTiger moteur de stockage) et config (informations de configuration de la base de données) et autres fichiers.

Comment ouvrir MongoDB Comment ouvrir MongoDB Apr 07, 2024 pm 06:15 PM

Sous Linux/macOS : Créez le répertoire de données et démarrez le service "mongod". Sous Windows : créez le répertoire de données et démarrez le service MongoDB à partir de Service Manager. Dans Docker : Exécutez la commande "docker run". Sur d'autres plateformes : Veuillez consulter la documentation MongoDB. Méthode de vérification : exécutez la commande "mongo" pour vous connecter et afficher la version du serveur.

Distinction Nodejs front-end et back-end Distinction Nodejs front-end et back-end Apr 21, 2024 am 03:43 AM

Node.js peut être utilisé à la fois pour le front-end (gestion de l'interface utilisateur et des interactions) et pour le back-end (gestion de la logique et des données). Le front-end utilise les frameworks HTML, CSS et JavaScript, tandis que le front-end utilise le framework Node.js, la base de données et les services cloud. L'accent est différent (le front-end se concentre sur l'expérience, le back-end se concentre sur la fonctionnalité), l'environnement d'exécution est différent (le front-end est dans le navigateur, le back-end est sur le serveur) et les outils sont différents (le front-end et le back-end utilisent des ensembles d'outils de compilation et d'empaquetage de code différents), bien que les deux utilisent JavaScript, mais avec accès à des API et des bibliothèques différentes.

See all articles