Начинаю писать интернет магазин. Хочу написать быстрый движок. Заинтересовался 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(); ?>
|
|