MongoDB在循环游标时花费了太多时间

时间:2014-04-12 14:44:43

标签: php mysql mongodb performance bigdata

我一直在使用PHP脚本比较MySQL与MongoDB之间的结果。我在MySQL数据库中有1500万条记录,有mongodb有1500万条文件。

我希望通过我的应用程序对这些数据进行超快速访问,该应用程序目前以PHP编码。

这是MySQL的代码

    $sql = "select * from history LIMIT 15000000";
    $result = mysql_query($sql);
    while ($row = mysql_fetch_array($result) )
    {
        //echo $row["id"] . "<br>";
    }

以下是MongoDB的代码

    $m = new Mongo();
    $db = $m->dbname;
    $cursor = $db->history->find(array())->limit(15000000);
    foreach ($cursor as $obj)
    {
        //echo $obj["_id"] . "<br>";
    }

MongoDB的查找语句速度非常快,但痛苦的时期是游标迭代并遍历所有提取的文档,并且花费了太多时间。

与此相比,MySQL的mysql_query()有点慢,但在循环通过mysql_fetch_array()之后,结果的检索速度比mongodb快。

MySQL和mongodb在获取数据和将数据交给应用程序方面花费了太多时间。我不知道这是否是在两者之间进行基准测试的正确方法。

请建议是否有其他方法可以加快这个过程,或者我应该选择其他DBMS(SQL或NoSQL),还是尝试使用其他编程语言。

未来数据的大小将会增加,因此建议设计的流程应具有足够的可扩展性以供将来使用。

0 个答案:

没有答案