Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > MySQL, mongoDb кто в итоге быстрее?


Автор: zammar 26.7.2015, 23:31
Начинаю писать интернет магазин.
Хочу написать быстрый движок. Заинтересовался MongoDB.

В инете кто говорит что он просто супер быстрый, кто говорит что большой разницы нету.
В итоге сделал примитивный тест на скорость работы монго и мускула, как на добавление так и на выборку 1 000 000 записей.
Результаты всегда в пользу мускула(он быстрее)

ВОПРОСЫ:
- Я так понял, что основной плюс монго в неструктурированности  данных, которые можно в нем хранить.
- Также в инете говорят о том, что тормоза монго из-за драйвера монго для ПХП. Якобы он медленный а сам монго супер быстрый.
- Как мне определиться с БД?

Пример кода тестирования скорости работы баз данных:
Код

<?php

$c = new MongoClient();
$c->test->users->drop();

// ================INSERT mongo'=====================================

echo 'INSERT mongo';
echo '<br>';
$t = microtime(true);
echo '<br>';
for($i = 0; $i < 1000000; $i++)
{
    $steve = array(
        "name" => "Steve".$i,
        "age" => 25,
        "languages"=> '222',
        "langsuages"=> '222',
        "lsdfangsuages"=> '22dsf2',
        "lge122s"=> '22dsf2',
        "ldf1122s"=> '22dsf2'
    );
    $c->test->users->insert($steve);
}
echo (microtime(true) - $t);
echo '<br>';


// ================SELECT mongo'=====================================

echo 'SELECT mongo';
echo '<br>';
$t = microtime(true);
echo '<br>';
$list = $c->test->users->find();
while($document = $list->getNext())
{

}
echo (microtime(true) - $t);
echo '<br>';



$f = mysql_connect('localhost', 'root', '');
mysql_select_db('test_db');
mysql_query('TRUNCATE users');


// ================INSERT mysql=====================================

echo 'INSERT mysql';
echo '<br>';
$t = microtime(true);
echo '<br>';
for($i = 0; $i < 1000000; $i++){

    mysql_query('INSERT INTO users(`name`,
        `age`,
        `languages`,
        `langsuages`,
        `lsdfangsuages`,
        `lge122s`,
        `ldf1122s`) VALUES("Steve'.$i.'",25,"222","222","22dsf2","22dsf2", "22dsf2")');
}
echo (microtime(true) - $t);
echo '<br>';


// ================SELECT mysql=====================================

echo 'SELECT mysql';
echo '<br>';
$t = microtime(true);
echo '<br>';
$res = mysql_query('SELECT * FROM users');
while($tmp = mysql_fetch_row($res))
{

}
echo (microtime(true) - $t);
echo '<br>';




$c->close();
?>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)