mongodb 联合索引和单个字段索引性能那个好些。
为情所困
为情所困 2017-05-02 09:22:03
0
1
785

现在遇到一个性能问题,解决办法就是给字段加索引,现在纠结的是字段组合索引还是单个索引查询效率问题?

场景
现在查询字段是parentId,key ,两个字段同时查询。

现在见索引的方案是
1 分别给 parentId,key添加索引

2 建一个组合索引 {parentId:1,key:1}这样的方式:

这两个查询性能是不是差不多啊?

求证

为情所困
为情所困

répondre à tous(1)
伊谢尔伦

En termes d'efficacité de l'index, l'index conjoint est nettement plus efficace. Dans de nombreux cas, si vous utilisez plusieurs champs pour interroger, vous devriez envisager d'utiliser l'index conjoint.
Mais les choses ne sont pas complètement absolues, et les frais généraux d'indexation doivent également être pris en compte.
En prenant vos conditions comme exemple, en supposant que key peut déterminer de manière unique un enregistrement, n'est-il pas nécessaire d'ajouter parentId ?
Prendre du recul, même si key ne peut pas en déterminer un de manière unique, s'il peut déterminer le résultat défini dans une certaine petite plage, comme 5 enregistrements ou 10 enregistrements, alors parentId cette condition n'est rien de plus que celles-ci 10 enregistrements Analysez à nouveau l'enregistrement pour trouver l'enregistrement approprié. Par rapport à la surcharge d'écriture, de stockage et de mémoire causée par son ajout à l'index, je peux choisir de ne pas le mettre du tout dans l'index commun.
Plus une condition peut filtrer d'enregistrements, meilleure est sa « sélectivité ». De manière générale, lorsque nous construisons un indice, nous devons placer les conditions avec une meilleure sélectivité au premier plan et les conditions avec une mauvaise sélectivité à la fin. Si c'est déjà assez grave, ne le laissez pas entrer.
Il s’agit en fait d’un équilibre entre le temps et l’espace. Les conditions placées dans l'index permettent de gagner du temps (y compris le temps CPU, le temps de requête) et de l'espace (y compris l'espace de stockage, l'espace mémoire). Les conditions ne sont pas mises dans l'index, mais économisent de l'espace. La plupart du temps, nous attendons le premier. Le choix du second dépend de votre propre évaluation de la situation réelle.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!