索引怎么建更能提高查询性能?


  • 註冊用戶

    在查询时,怎么判断已建索引是否高效,如果组合索引里面已经包含高散列程度的键,是否还需要对高散列程度的键再单独建索引?


  • Lv 1

    @jesseshi

    可用 explain 分析效能

    參考 

    本帖下載内容已隐藏,请登入以查看隐藏内容!


  • Lv 1

    參考:《MongoDB——The Definitive Guide 2nd Edition》 page98
    ============================================================
    查詢時,索引是否高效,要注意它的cardinality(cardinality越高表示該鍵可選擇的值越多),
    在組合索引中,讓cardinality高的放在前面。注意這裡跟分布式環境選擇shard key的不同。

    index cardinality(索引散列程度),表示的是一個索引所對應到的值的多少,散列程度越低,
    則一個索引對應的值越多,索引效果越差:在使用索引時,高散列程度的索引可以更多的排除不符
    合條件的文檔,讓後續的比較在一個更小的集合中執行,這更高效。所以一般選擇高散列程度的鍵
    做索引,或者在組合索引中,把高散列程度的鍵放在前面


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待