第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL vs MongoDB 1000讀取

MySQL vs MongoDB 1000讀取

我對MongoDb感到非常興奮,并且最近對其進行了測試。我在MySQL中有一個名為posts的表,其中大約2000萬條記錄僅在名為“ id”的字段上建立索引。我想將速度與MongoDB進行比較,然后運行了一個測試,該測試將從我們的大型數據庫中隨機獲取并打印15條記錄。我為mysql和MongoDB分別運行了約1,000次查詢,但我很驚訝我沒有注意到速度上的很大差異。也許MongoDB快1.1倍。真令人失望。我做錯什么了嗎?我知道我的測試并不完美,但是在閱讀繁瑣的雜物方面,MySQL與MongoDb相當。注意:我有雙核+(2個線程)i7 cpu和4GB ram我在MySQL上有20個分區(qū),每個分區(qū)有1百萬條記錄用于測試MongoDB的示例代碼<?phpfunction microtime_float(){    list($usec, $sec) = explode(" ", microtime());    return ((float)$usec + (float)$sec);}$time_taken = 0;$tries = 100;// connect$time_start = microtime_float();for($i=1;$i<=$tries;$i++){    $m = new Mongo();    $db = $m->swalif;    $cursor = $db->posts->find(array('id' => array('$in' => get_15_random_numbers())));    foreach ($cursor as $obj)    {        //echo $obj["thread_title"] . "<br><Br>";    }}$time_end = microtime_float();$time_taken = $time_taken + ($time_end - $time_start);echo $time_taken;function get_15_random_numbers(){    $numbers = array();    for($i=1;$i<=15;$i++)    {        $numbers[] = mt_rand(1, 20000000) ;    }    return $numbers;}?>測試MySQL的樣例代碼<?phpfunction microtime_float(){    list($usec, $sec) = explode(" ", microtime());    return ((float)$usec + (float)$sec);}$BASE_PATH = "../src/";include_once($BASE_PATH  . "classes/forumdb.php");$time_taken = 0;$tries = 100;$time_start = microtime_float();for($i=1;$i<=$tries;$i++){    $db = new AQLDatabase();    $sql = "select * from posts_really_big where id in (".implode(',',get_15_random_numbers()).")";    $result = $db->executeSQL($sql);    while ($row = mysql_fetch_array($result) )    {        //echo $row["thread_title"] . "<br><Br>";    }}$time_end = microtime_float();$time_taken = $time_taken + ($time_end - $time_start);echo $time_taken;function get_15_random_numbers(){    $numbers = array();    for($i=1;$i<=15;$i++)    {        $numbers[] = mt_rand(1, 20000000);    }    return $numbers;}?>
查看完整描述

3 回答

?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

您是否有并發(fā)性,即同時使用用戶?如果僅使用一個線程直接運行1000次查詢,則幾乎沒有區(qū)別。這些引擎太簡單了:)

但我強烈建議您建立一個真正的負載測試會話,這意味著在同一時間使用具有10、20或50個用戶的注入器(例如JMeter),以便您能真正看到差異(嘗試將此代碼嵌入JMeter網頁中可以查詢)。

今天,我只是在一臺服務器(和一個簡單的集合/表)上完成此操作,結果非常有趣且令人驚訝(與MyISAM引擎和InnoDb引擎相比,MongoDb的讀寫速度確實更快)。

這確實應該是測試的一部分:并發(fā)和MySQL引擎。然后,數據/架構設計和應用程序需求當然是巨大的需求,而不是響應時間。讓我知道您獲得結果時,我也需要有關此的輸入!


查看完整回答
反對 回復 2019-12-07
  • 3 回答
  • 0 關注
  • 1069 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號