我一直在使用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),还是尝试使用其他编程语言。
未来数据的大小将会增加,因此建议设计的流程应具有足够的可扩展性以供将来使用。