우리는 mysql에서 mongodb로 이동하려고합니다. , {id_src, id_dest} {1, 2} {1Mysql에서 MongoDB 2000000 행으로 전환
id_dest 그들은
데이터 exemple MySQL의
약 200 백만 행은, id_src : MySQL의 구조 id_src INT id_dest INT 고유 열쇠 3} {1,10} {2,3} {2,10} {4,3}데이터를 다시 가져와야합니다. {id_dest, count} {3,3} {10,2} {2 , 1}
mongodb에서 mysql의 구조를 바꾸기 시작했습니다. 삽입 성능은 매우 좋았습니다 (매우 양호) : 약 1 시간 동안 200 백만 행을 삽입했습니다.
하지만 map reduce를 사용하여 그룹을 가져와야합니다. 지도 축소에는 약 1 시간이 걸렸습니다. 각 문서가 id_src의 십만를 가질 수 {id_dest, {id_src1, id_src2}}
:
그래서 나는 다른 MongoDB의 구조를 만들려고.여기
$res=mysql_unbuffered_query("select * from ids limit 10000100");
while ($tab=mysql_fetch_array($res)) {
$collection->update(array('_id'=>(int)$tab['id_dest']),array('$push' => array('src'=>(int)$tab['id_src'])),array("upsert" => true));
}
그러나이 경우 성능
초 당 아주 나쁜, 단지 몇 갱신됩니다 내 insert.php 코드입니다.내가 잘못 했나요?
200h 행의 경우 1h가 "거대"인 경우 200m 행을 삽입하면 MySQL에 얼마나 오래 걸릴 수 있습니까? –
"거대한"이라고 말하면서 나는 "매우 좋았다"고 말했습니다. 그러나 나의 문제는지도로 우리에게 완전하지만 받아 들일 수있는 "그룹을"얻는 시간을 줄이는 것이었다. mongodb 기능 (다중 값 필드)을 사용하는 새로운 문서 모델이 mysql 데이터 구조를 재현하는 것보다 영리하지 않은지 궁금했습니다. – benfromaix
알겠습니다. 좋은 답변을 기다리 자구 : –