Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从$category中选择*_Php_Mysql_Performance_Mongodb - Fatal编程技术网

Php 从$category中选择*

Php 从$category中选择*,php,mysql,performance,mongodb,Php,Mysql,Performance,Mongodb,我想在mysql中执行一个请求,比如SELECT*FROM.$category.$db->selectCollection($category)->find() 这将作为MongoCursor对象提供特定集合的所有结果。不确定您还需要什么。$db->selectCollection($category)->find() 这将作为MongoCursor对象提供特定集合的所有结果。不知道你还想找什么 在mongodb中进行一次以上的收集会更快吗?例如,我把10个收藏中的每一个一百万放进去,还是一个1

我想在mysql中执行一个请求,比如
SELECT*FROM.$category.
$db->selectCollection($category)->find()


这将作为MongoCursor对象提供特定集合的所有结果。不确定您还需要什么。

$db->selectCollection($category)->find()

这将作为MongoCursor对象提供特定集合的所有结果。不知道你还想找什么

在mongodb中进行一次以上的收集会更快吗?例如,我把10个收藏中的每一个一百万放进去,还是一个1000万放进去

与许多数据库一样,MongoDB可以水平扩展,不仅如此,MongoDB内部在这些问题上更喜欢在DB级别上工作(即,它有一个DB级别的锁,但读锁是并发的)

这是一个经典问题:如何扩展数据库

这是一个涉及面广、几乎无法确定的话题。出于某种原因,我建议您首先在“数据库扩展”或更具体地说“mongodb扩展”上进行谷歌搜索

MongoDB和MySQL都可以在一个集合中轻松处理1000万条记录,而将它们分离出来可能不会带来任何性能提升

您最好只拥有两个集合:-
post
category
,通过category文档的
\u id
选择一篇文章,如下所示:

$db->post->find(array('category' => new MongoId('blah')));
我想,如果并发写操作的数量达到了疯狂的程度(边界线愚蠢),并且要使单个数据库上的锁饱和,您可能会将集合(数据)拆分为单独的数据库,但是,我非常怀疑您是否需要这样做

在mongodb中进行一次以上的收集会更快吗?例如,我把10个收藏中的每一个一百万放进去,还是一个1000万放进去

与许多数据库一样,MongoDB可以水平扩展,不仅如此,MongoDB内部在这些问题上更喜欢在DB级别上工作(即,它有一个DB级别的锁,但读锁是并发的)

这是一个经典问题:如何扩展数据库

这是一个涉及面广、几乎无法确定的话题。出于某种原因,我建议您首先在“数据库扩展”或更具体地说“mongodb扩展”上进行谷歌搜索

MongoDB和MySQL都可以在一个集合中轻松处理1000万条记录,而将它们分离出来可能不会带来任何性能提升

您最好只拥有两个集合:-
post
category
,通过category文档的
\u id
选择一篇文章,如下所示:

$db->post->find(array('category' => new MongoId('blah')));

我想,如果并发写入的数量太多(边界线愚蠢),并且单个数据库上的锁饱和,那么您会将集合(数据)拆分为单独的数据库,我非常怀疑您是否需要它。

我建议您花几分钟时间阅读mongodb php扩展的基础知识

这很容易开始,你可以按照例子

关于性能,这将在很大程度上取决于您的设置

我创建了两个集合,并填充了演示数据:

一百万:

for (var i=0; i<100000; i++) { cat = { name : 'category'+i }; db.onemillion.save(cat); }
> db.onemillion.find({'name':'category12345'}).explain();
{
    "cursor" : "BasicCursor",
    "isMultiKey" : false,
    "n" : 1,
    "nscannedObjects" : 1000000,
    "nscanned" : 1000000,
    "nscannedObjectsAllPlans" : 1000000,
    "nscannedAllPlans" : 1000000,
    "scanAndOrder" : false,
    "indexOnly" : false,
    "nYields" : 1,
    "nChunkSkips" : 0,
    "millis" : 331,
    "indexBounds" : {

    },
    "server" : "station7.local:27017"
}
>
一千万:

for (var i=0; i<10000000; i++) { cat = { name : 'category'+i }; db.tenmillion.save(cat); }
> db.tenmillion.find({'name':'category12345'}).explain();
{
    "cursor" : "BasicCursor",
    "isMultiKey" : false,
    "n" : 1,
    "nscannedObjects" : 10000000,
    "nscanned" : 10000000,
    "nscannedObjectsAllPlans" : 10000000,
    "nscannedAllPlans" : 10000000,
    "scanAndOrder" : false,
    "indexOnly" : false,
    "nYields" : 4,
    "nChunkSkips" : 0,
    "millis" : 3301,
    "indexBounds" : {

    },
    "server" : "station7.local:27017"
}
> 
正如所料

您可以使用它来测试您的案例

我无法想象一千万个类别集合的用例


因此,如果您能提供更多信息,那就更好了。

我建议您花几分钟时间阅读mongodb php扩展的基础知识

这很容易开始,你可以按照例子

关于性能,这将在很大程度上取决于您的设置

我创建了两个集合,并填充了演示数据:

一百万:

for (var i=0; i<100000; i++) { cat = { name : 'category'+i }; db.onemillion.save(cat); }
> db.onemillion.find({'name':'category12345'}).explain();
{
    "cursor" : "BasicCursor",
    "isMultiKey" : false,
    "n" : 1,
    "nscannedObjects" : 1000000,
    "nscanned" : 1000000,
    "nscannedObjectsAllPlans" : 1000000,
    "nscannedAllPlans" : 1000000,
    "scanAndOrder" : false,
    "indexOnly" : false,
    "nYields" : 1,
    "nChunkSkips" : 0,
    "millis" : 331,
    "indexBounds" : {

    },
    "server" : "station7.local:27017"
}
>
一千万:

for (var i=0; i<10000000; i++) { cat = { name : 'category'+i }; db.tenmillion.save(cat); }
> db.tenmillion.find({'name':'category12345'}).explain();
{
    "cursor" : "BasicCursor",
    "isMultiKey" : false,
    "n" : 1,
    "nscannedObjects" : 10000000,
    "nscanned" : 10000000,
    "nscannedObjectsAllPlans" : 10000000,
    "nscannedAllPlans" : 10000000,
    "scanAndOrder" : false,
    "indexOnly" : false,
    "nYields" : 4,
    "nChunkSkips" : 0,
    "millis" : 3301,
    "indexBounds" : {

    },
    "server" : "station7.local:27017"
}
> 
正如所料

您可以使用它来测试您的案例

我无法想象一千万个类别集合的用例


所以如果你能提供更多的信息,那就更好了。

这正是我想要的。非常感谢你!性能问题呢?你也能帮我吗^^那要看你在找什么了。从技术上讲,搜索较小的表总是会更快。但是,如果出于某种原因,你想得到所有的文档,你最好从一个集合中获得1000万,而不是从十个集合中获得100万。诚然,在这种大小的数据集上,到服务器的额外往返不是您最大的担忧。如果你能提供更多的细节,答案可能会更清楚。这正是我想要的。非常感谢你!性能问题呢?你也能帮我吗^^那要看你在找什么了。从技术上讲,搜索较小的表总是会更快。但是,如果出于某种原因,你想得到所有的文档,你最好从一个集合中获得1000万,而不是从十个集合中获得100万。诚然,在这种大小的数据集上,到服务器的额外往返不是您最大的担忧。如果你能提供更多的细节,答案可能会更清楚。