1
PHP 몽고 드라이버를 사용하면 데이터베이스에서 코드를 실행할 수 있습니다. sharded 환경에서도 작동합니까? eval()을 사용하는 코드를 평가할 때 sharded 환경에서는 작동하지 않는다는 것을 알고 있습니다.MongoDB :: execute는 mongos eval()을 내부적으로 사용합니까?
$db->execute(
new MongoCode('SomeFunc(o)', array(
'o' => array('name' => 'test')
))
);
Sharded 환경에서 코드를 어떻게 실행할 수 있습니까? –
두 가지 옵션이 있습니다. 하나의 컴퓨터에 데이터를 가져 와서 거기에서 물건을 계산할 수 있습니다 (멀리 할 수있는 경우/권장). 또는 mapReduce 또는 이와 유사한 것을 사용할 수 있습니다. MongoDB의 MR은 단일 스레드이며 (또는 마지막으로 확인한) 단일 스레드이며 실제로 maooDB와 함께 사용할 수있는 Hadoop과 경쟁 할 수 없습니다. 그러나 MR을 사용하기 전에 두 번 생각하면 개발 시간이 많이 걸리고 일반 처리에 비해 느립니다. 이는 엄청난 양의 데이터에만 유용합니다. 내 조언은 첫 번째 옵션으로 시작하고 단일 프로세스가 더 이상 충분하지 않을 때만 MR을 사용하는 것입니다. – johndodo
이미 node.js.에서 첫 번째 제안 사항을 구현했습니다. 문제는 엄청난 양의 데이터로 인해 속도가 느리다는 것입니다. 그래서 내 생각은 노드에서 mongo로 코드를 저장 프로 시저로 옮겨서 내 미들웨어에서 호출하는 것이 었습니다. –