db.getcollection('user').find(,,]})
使用者編號,手機號,裝置號三個條件進行or查詢,可以有多種建立索引的方式,比如:
1.建立userno_-1_phone_-1_imei_-1的聯合索引
2.建立單獨的userno,imei索引等
但是經過explain()檢視後發現,建立的聯合索引不起作用,只建立userno,imei,phone中的任意乙個或者兩個的單獨索引也不會生效,只有把三個查詢條件都建立單獨的索引後,這條or查詢語句才能用到索引
所以,當or並列查詢條件不多,但庫中資料量很大的時候,多建立幾個單獨索引還是很有必要的
hive查詢與優化
今早的過濾資料,盡可能的減少資料在每個階段的輸入和輸出,使用分割槽表時,要使用分割槽條件進行過濾 可以使用中間表來完成一些複雜的操作 join操作時,將小表放在join的左邊 union all的個數大於2,可以考慮使用inset into來優化 根據資料的本身特點,在使用join 和group b...
MYSQL查詢與優化
sql查詢關聯兩個資料表,乙個是攻擊ip使用者表主要是記錄ip的資訊,如第一次攻擊時間,位址,ip等等,乙個是ip攻擊次數表主要是記錄每天ip攻擊次數。而需求是獲取某天攻擊ip資訊和次數。以下sql語句測試均在測試伺服器上上,正式伺服器的效能好,查詢時間快不少。檢視表的行數 未優化前sql語句為 s...
劍指Offer sql 運用二叉查詢樹優化索引
首先先介紹一下二叉查詢樹,二叉查詢樹的每個節點,最多只有兩個子樹,通常稱為左子樹和右子樹,且左子樹節點的值一定小於父節點的值,右子樹節點的值一定大於父節點的值,採用這種二叉樹的設計,確實會提高我們索引的效率。時間複雜度 logn 且圖上這棵二叉樹,不僅僅是二叉查詢樹,同時也是平衡二叉樹,也就是左右子...