執行計畫:巨杉資料庫的執行計畫通過explain獲取,分成兩種,一種是未執行獲取的執行計畫,一種是已執行後獲取的執行計畫。兩種方式獲取的執行計畫詳情有所不同。
索引:在巨杉早期的版本中,先建立的索引會被優先使用,這是不合理的,後面的版本不知道有沒有進行優化。可以通過hint進行指定使用哪個索引。
--執行計畫
> db.scott.person.find().explain()
> db.scott.person.find().explain()
> db.scott.person.find().explain()
--索引
> db.scott.person.createindex("idx_person_age",,true) --唯一索引
> db.scott.person.createindex("idx_person_age",,false) --普通索引
> db.scott.person.createindex("idx_person_age",,false) --反向索引
> db.scott.person.listindexes() --檢視索引
--指定索引hint和use_index
//nosql寫法:
> db.scott.person.find().hint().explain() --強制走索引
> db.scott.person.find().hint().explain() --強制走全表
//sql寫法:
> db.exec("select * from scott.t_test where yxbz='未停用' and myl>=90 /*+use_index(idx_test_yxbz)*/")
> db.exec("select * from scott.t_test where yxbz='未停用' and myl>=90 /*+use_index(idx_test_myl)*/")
> db.exec("select * from scott.t_test where yxbz='未停用' and myl>=90 /*+use_index(null)*/") --不使用索引
> db.exec("select t1.a, t2.b from foo.bar1 as t1 inner join foo.bar2 as t2 on t1.a = t2.b /*+use_index(t1, idx_bar1_a) use_index(t2, idx_bar2_b) use_hash()*/")
SequoiaDB巨杉資料庫 訪問計畫
在資料庫系統中,乙個操作命令 如 sql 語句 的處理通常包含以下兩大步驟 查詢優化是影響命令執行效率的乙個關鍵因素,它決定了資料的具體訪問路徑,和是否使用索引以及使用哪個索引。比較常見的兩種優化器型別是 rbo rule based optimization,基於規則的優化器 與 cbo cost...
SequoiaDB 巨杉資料庫 全文索引
全文索引用於在大量文字中進行快速的檢索。在使用普通索引時,搜尋特定的關鍵字需要使用正規表示式。當文字是整本書或是整篇文章時,正規表示式的效率較低。而全文索引會建立乙個詞庫,統計每個詞條出現的頻率和位置。在搜尋某詞時,就可以快速定位到該詞出現的位置,提公升檢索效率。sequoiadb 全文檢索能夠實現...
SequoiaDB巨杉資料庫 索引的統計資訊
欄位名資料型別 預設值必須 說明collectionspace string 是統計收集的集合空間名 collection string 是統計收集的集合名 createtime numberlong0是 統計收集的時間戳 index string 是統計收集的索引名 indexlevels num...