mongo的php查詢,使用PHP進行簡單查詢的mongo查詢速度慢

我有一個非常簡單的使用PHP執行的Mongo Query。

我相信查詢執行得非常快,因為當我在終端上運行它時,它幾乎可以立即完成,并且當我解釋()時,它表明它正在1-2ms內執行。

但是,當我去迭代游標并將內容放入數組時,它會減慢bigtime大約需要1秒鐘來遍歷幾條記錄。

它使用索引,并且索引將掃描的對象縮小為它返回的少量文檔。

我有其他非常類似的查詢運行在這個數據庫,完成字面上1000倍更快。

以下是explain()的結果:

cursor (String, 18 characters ) BtreeCursor vsid_1

nscanned (Integer) 7

nscannedObjects (Integer) 7

n (Integer) 7

scanAndOrder (Boolean) TRUE

millis (Integer) 2

nYields (Integer) 0

nChunkSkips (Integer) 0

isMultiKey (Boolean) FALSE

indexOnly (Boolean) FALSE

indexBounds (Array, 1 element)

vsid (Array, 1 element)

0 (Array, 2 elements)

0 (String, 32 characters ) e11d0d96958a473e261933516489158c

1 (String, 32 characters ) e11d0d96958a473e261933516489158c

allPlans (Array, 4 elements)

oldPlan (Array, 2 elements)正如您所看到的,它正在使用適用于此查詢的“vsid”索引。這個集合的大小不小,但它也不是很大(約250,000條記錄)。

當我執行查詢時,我只需使用一個非常簡單的迭代就可以將其放入數組中:

foreach ($cursor as $obj) {

$vhit[] = $obj;

}執行每次迭代的實際時間僅為毫秒的幾分之一。查詢的執行最多為2毫秒。但是進入“foreach”循環的過程會導致1秒的延遲。

有任何想法嗎?

編輯:服務器運行大約8 GIG的RAM,但整個數據庫只有745 MB,所以它應該能夠適應RAM中的整個數據庫。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453399.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453399.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453399.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

順序存儲結構和鏈式存儲結構的優缺點

(一)順序存儲結構和鏈式存儲結構的優缺點比較,以及使用情況。 1 優缺點 ① 順序存儲時,相鄰數據元素的存放地址也相鄰(邏輯與物理統一);要求內存中可用存儲單元的地址必須是連續的。 優點&…

大話軟件開發與開車的共同點

昨天路上開車,突然有了這個想法,做軟件開發與開車,竟然有這么多的相似之處,大致整理了一下思路,和大家分享一下。 一、目的 開車的目的有3個,第一是為了讓自己到底目的地(上班族),第二是為了兜…

Spring核心接口之Ordered

一、Ordered接口介紹Spring中提供了一個Ordered接口。從單詞意思就知道Ordered接口的作用就是用來排序的。Spring框架是一個大量使用策略設計模式的框架,這意味著有很多相同接口的實現類,那么必定會有優先級的問題。于是Spring就提供了Ordered這個接口&a…

將本地代碼上傳至github

注冊github賬號 https://github.com/ 安裝git工具 https://git-for-windows.github.io 1.在github中創建一個項目 2.填寫相應信息,點擊create Repository name: 倉庫名稱 Description(可選): 倉庫描述介紹 Public, Private : 倉庫權限(公開共享&#xff…

禪道 php api,云禪道有API的方式可以獲取數據嗎

api相關手冊:api接口查看,可以本地搭建和云禪道相同版本的禪道,然后admin 后臺 二次開發 api,可以查看接口列表。api調用步驟PATH_INFO方式1、訪問 http://x.com/api-getsessionid.json獲取禪道session信息2、使用上一步獲取的ses…

鏈表的頭結點和尾節點的用處

某些情況下設置尾指針的好處 尾指針是指向終端結點的指針,用它來表示單循環鏈表可以使得查找鏈表的開始結點和終端結點都很方便,設一帶頭結點的單循環鏈表,其尾指針為rear,則開始結點和終端結點的位置分別是rear->next->ne…

經驗從哪里來?從痛苦中來!

1 剛才發博客,寫的幾百字丟失,讓我知道下次一定要在記事本里寫好,再復制過來,避免丟失了 2 程序忘記備份,辛苦一個多月的東西沒有了,只能找到1月前的版本,讓我知道了,重要的東西必須…

oracle 加全文索引,Oracle創建全文索引

1、創建表空間,有必要將物理文件設置大一些2、創建基于這個表空間的用戶3、創建需要建立全文索引的表4、用管理員帳戶為使用這用戶開發ctx_ddl權限grant execute on ctx_ddl to useer;5、創建適合的lexer(解析器)exec ctx_ddl.create_references(my_lexer,basic_le…

機器視覺系統需要考慮的十個問題

為了使用戶在選擇一款機器視覺系統時應該考慮的關鍵的、基本的特性方面提供指導。下面是選擇一款機器視覺系統時要優先考慮的十個方面: 1. 定位器 對象或特征的精確定位是一個檢測系統或由視覺引導的運動系統的重要功能。傳統的物體定位采用的是灰度值校正來識別物體…

嚴蔚敏數據結構:鏈表實現一元多項式相加

一、基本概念 1、多項式pn(x)可表示成: pn(x)a0a1xa2x2…anxn。 listP{(a0,e0),(a1,e1),(a2,e2),…,(an,en) }。在這種線性表描述中,各個結點…

Java二十三設計模式之------工廠方法模式

一、工廠方法模式(Factory Method) 工廠方法模式有三種 1、普通工廠模式:就是建立一個工廠類,對實現了同一接口的一些類進行實例的創建。首先看下關系圖: 舉例如下:(我們舉一個發送郵件和短信的…

無法轉化為項目財富的技術或功能就是垃圾

技術人員可能有個習慣,也可以叫通病,發現一個新技術,或者新的想法,會把某個現有的東西做的更好,或者可以增加某個功能讓系統看上去更完美。 如果這是一個產品,那么大家都會鼓勵你去做,如果我們…

ibatis oracle function,IBATIS調用oracle function(函數)的步驟實例

IBATIS調用oracle function(函數)的方法實例引用create or replace function getClassifiedCode(p_planCode in varchar2 -- 險種代碼,p_usageAttributeCode in varchar2 -- 使用性質代碼,p_ownershipAttributeCode in varchar2 -- 所屬性質代碼,p_vehicleTypeCode in varchar2…

一元多項式乘法算法

我認為大致算法應該是這樣的: 首先準備一個空的鏈表L。利用第一個多項式的的指針所指的節點數值乘以多項式二的每一項,將結果保存在鏈表L中。 然后將指向該節點的指針后移到下一個節點繼續進行乘法運算,將所得結果加到L中(這個操作已經在一…

堆以及stl堆的使用

概念 性質: 1.堆是一顆完全二叉樹,用數組實現。 ???2.堆中存儲數據的數據是局部有序的。 最大堆:1.任意一個結點存儲的值都大于或等于其任意一個子結點中存儲的值。 ?????2.根結點存儲著該樹所有結點中的最大值。 最小堆:1.任意一個結…

讀【36歲IT老人再次隨筆】的讀后感,你會哪些計算機語言?

論壇首頁一篇:社區“揭穿最大謊言”事件 , 我看了,也順便看了里面另一位仁兄的【36歲IT老人再次隨筆】 其中關鍵的地方就是一個例子:你會哪些計算機語言? 這個問題很有意思,確實如網友回復里說到的&#xf…

php接收vue請求數據axios,詳解vue axios用post提交的數據格式

Content-type的幾種常見類型一、是什么?是Http的實體首部字段,用于說明請求或返回的消息主體是用何種方式編碼,在request header和response header里都存在。二、幾個常用類型:1、application/x-www-form-urlencoded這應該是最常見…

數據結構中的邏輯結構簡介

數據的邏輯結構是對數據之間關系的描述,有時就把邏輯結構簡稱為數據結構。邏輯結構形式地定義為(K,R)(或(D,S)),其中,K是數據元素的有限集&#x…

applicationContext配置文件模板1

<?xml version"1.0" encoding"utf-8"?> <beans      --整個配置文件的根節點&#xff0c;包含一個或多個bean元素 xmlns    --最基本的命名空間定義 xmlns:xsi  --最基本的命名空間定義 xmlns:context  --啟動自動掃描或注解裝配…

時間復雜度的一些計算規則

一些規則(引自&#xff1a;時間復雜度計算 ) 1) 加法規則 T(n,m) T1(n) T2(n) O (max ( f(n),g(m) ) 2) 乘法規則 T(n,m) T1(n) * T2(m) O (f(n) * g(m)) 3) 一個特例&#xff08;問題規模為常量的時間復雜度&#xff09; 在大O表示法里面有一個特例&#xff0c;如…