文章詳情頁
MongoDB的索引需要考慮每個鍵的索引方向,為何這么設計?而MySQL的索引則無需考慮方向,兩者之間有何優劣勢?
瀏覽:93日期:2022-06-20 15:11:13
問題描述
給一個表/集合創建索引:
// 給集合創建索引,以下會創建兩個不同的索引db.col.ensureIndex({user_id:-1, status:-1})db.col.ensureIndex({user_id:1, status:1})// 給表創建索引alter table table_name add index idx_name(`user_id`, `status`)
問題解答
回答1:mongodb和mysql的索引實現方式不一樣。mongodb不太熟悉。所以只針對mysql來說:
mysql實現索引的方式是btree或者btree的變種,前序和后序遍歷都一致的。
同時mysql的索引也支持升序和降序排列,只是默認是升序罷了。
回答2:當排序過程中用到索引時,索引的方向能起到一定的作用。這個左右對于小數據量的表并不明顯,而對于大數據量的表就能顯現出來。因為MySQL出現較早,當時應該沒有進行大數據量的這種考慮。
回答3:http://tech.meituan.com/mysql-index.html
回答4:在sort()的時候有用,當排序的順序和索引順序一樣時,mongodb直接從索引中獲取排序信息以此提升性能。
請參考:http://docs.mongoing.com/manual-zh/tutorial/sort-results-with-indexes.html
排行榜
