mogo建立索引的时候,会不会容易引起长时间写锁的问题?
-
如题,mogo建立索引的时候,会不会容易引起长时间写锁的问题?
-
MongoDB 在前臺建索引時需要佔用一個寫鎖(而且不會臨時放棄),如果集合的資料量很大,建索引通常要花比較長時間,特別容易引起問題。
解決的方法很簡單,MongoDB 提供了兩種建索引的訪問,一種是 background 方式,不需要長時間佔用寫鎖,另一種是非 background 方式,需要長時間佔用鎖。使用 background 方式就可以解決問題。 例如,為超大表 posts 建立索引, 千萬不用使用
代碼如下:
db.posts.ensureIndex({user_id: 1})
而應該使用
代碼如下:
db.posts.ensureIndex({user_id: 1}, {background: 1})