2013-07-06 65 views
-1

我有一個網站搜索網站的源代碼。但是當數據庫獲得超過100個站點時,mongodb開始工作得更慢。MongoDB變得很慢

這裏是我的代碼:

$arananlar = $db->kaynaklar->find(array("kaynak" => new MongoRegex("/".$kelime."/siU")))->sort(array("_id" => -1))->limit($kactane)->skip($alt); 
+0

不知道'$ kelime'中有什麼,它很難知道發生了什麼。 –

回答

1

的常用方法,以加快搜索是通過添加一個索引。但是當您使用正則表達式時,索引無法提供幫助。索引僅在您確切知道要搜索的內容時纔會對您有所幫助。但是正則表達式要比這複雜得多。他們需要閱讀每個字符串的全部內容(exception: when the regular expression starts with the start-of-string anchor ^)。

但是,當你不需要正則表達式的全部權力,只能搜索完整的單詞,you can create a text index and use text search

如果您想知道某個特定查詢是否使用索引,可以使用遊標的explain方法。

+0

我使用用戶窗口和編碼窗口,但我刪除了空格,並在源代碼中搜索沒有多餘的單詞或不必要的空間。 – Serhat

+0

@Serhat我很抱歉,但我不明白你的評論與我的答案有什麼關係。請澄清。 – Philipp

+0

我用自己的技術解決了這個問題 – Serhat