我已經看到了Neo4j的谷歌集團的問題還有,我問,如果你能在PHP中測量的執行時間,如果不是使用
回聲$行[「N」] - >的getProperty ('名稱') 。 「\ n」 個;.
您使用
的print_r($結果);
讓我來解釋下面的原因。 當我開始使用Neo4j和PHP時,我對速度方面PHP的有效性有所擔憂。我像這樣重新創建了你的問題。首先,我創建了200個隨機節點。每個節點都有一個Label,10個屬性,每個屬性的值都是10個字符。這是我使用的腳本。
for ($x=1; $x<=200; $x++)
{
$queryString = "CREATE (n:User { name : '".substr(md5(rand()), 0, 10)."' , city : '".substr(md5(rand()), 0, 10)."' , date : '".substr(md5(rand()), 0, 10)."', age : '".substr(md5(rand()), 0, 10)."', country : '".substr(md5(rand()), 0, 10)."', language : '".substr(md5(rand()), 0, 10)."', origin : '".substr(md5(rand()), 0, 10)."', preference : '".substr(md5(rand()), 0, 10)."', color : '".substr(md5(rand()), 0, 10)."', graduate : '".substr(md5(rand()), 0, 10)."'})";
$query = new Everyman\Neo4j\Cypher\Query($client, $queryString);
$result = $query->getResultSet();
}
使用foreach循環我得到的結果是你一個人
foreach ($result as $row) {
echo $row['n']->getProperty('name') . "\n";
}
,我測量的時間執行使用此代碼
$time_start = microtime(true);
$queryString = "MATCH (n) RETURN n";
$query = new Everyman\Neo4j\Cypher\Query($client, $queryString);
$result = $query->getResultSet();
foreach ($result as $row) {
echo $row['n']->getProperty('name') . "\n";
}
$time_end = microtime(true);
$execution_time = ($time_end - $time_start)*1000;
//execution time of the script
echo '<b>Total Execution Time:</b> '.$execution_time.' ms';
有了200個節點我在WebAdmin的有兩個和在85毫秒左右的PHP。數據量不足以獲得準確的結果,因此我將節點數增加到了500.時間執行上升到了115ms,包括webadmin和php腳本。將我的節點增加到2000我的執行時間爲200毫秒,但webadmin和php之間沒有顯着差異。最後我得到了我的節點高達10000.好了,現在我們有一些結果。 Webadmin在1020ms內返回10000個節點。雖然Php太慢了。
執行時間總計:1635.6329917908毫秒
我覺得這不是我所期望的。而不是使用$行[「X」]方法我print_r的結果和時間增加到
執行時間總計:2452.4049758911毫秒
所以我覺得讓沒有打印的所有屬性屏幕,但只是返回節點和計數(n),看看我們有什麼,如果我們打印每個將成爲「1」的計數。
$queryString = "MATCH (n) RETURN n AS n, count(n) AS x";
$query = new Everyman\Neo4j\Cypher\Query($client, $queryString);
$result = $query->getResultSet();
foreach ($result as $row) {
echo $row['x'];
}
上述代碼的結果將是這樣的。
1111111111111111111111 ...... 執行時間總計:1084.1178894043毫秒
正如你可以看到PHP和網站管理的同時返回10000項(10000個節點我不認爲60 ms是一個主要的區別),並用這個結論我的重要答案:在php和Neo4j中我們沒有時間去檢索大量的數據,但是我們放鬆了很多時間在PHP上在瀏覽器上呈現這些數據。
你是什麼意思的參數?你可以請分享我可以閱讀的任何鏈接。謝謝 – user609306