나는 결국 내 솔루션 중 하나에 대한 MySQL을 성장했습니다. 지금은 3D 공간에 객체의 x, y, z를 저장하는 7 천만 개의 행이 있습니다. 불행히도 삽입/쿼리를 더 이상 처리하기 위해 데이터베이스를 최적화하는 방법을 알지 못합니다. 거리를 기반으로 쿼리해야합니다 (거리 내에있는 객체 가져 오기).
누구에게 좋은 대체 방법에 대한 제안이 있습니까? 비슷한 문제가 발생할 수 있으므로 hbase 또는 비 관계형 데이터베이스와 같은 것을보고 있어야하는지 여부는 알 수 없습니다. 나는 일반적으로 분당 약 100 행을 삽입, 내 쿼리는 다음과 같습니다
// get objects within 500 yards
SELECT DISTINCT `object_positions`.`entry` FROM `object_positions` WHERE `object_positions`.`type` = 3 AND `object_positions`.`continent` = '$p->continent' AND SQRT(POW((`object_positions`.`x` - $p->x), 2) + POW((`object_positions`.`y` - $p->y), 2) + POW((`object_positions`.`z` - $p->z), 2)) < 500;
아무것도 복잡 미친,하지만 난 관련된 수학은 MySQL이 폭발의 원인이 무엇이라고 생각하고 내가보고해야하는지 궁금하네요 클라우드 기반 데이터베이스 솔루션? 초당 10-100 개의 쿼리를 처리 할 수 있습니다.
'object_positions' 테이블에'continent' 필드가 포함되어 있다면, 지리적 위치를 저장하려고하는 것처럼 들리 겠지요. 그렇다면이 질문에 대한 답을 찾아보십시오. http://stackoverflow.com/ 질문/1006654/가장 빠른 길 - 찾을 - 거리 - 두 - 위도 - 긴 - 포인트 사이 –
나는 x, y, z를 가지고 있기 때문에 SPATIAL을 사용할 수 없습니다. 경도/위도가 아닙니다 : ( – Geesu
지상 또는 해발에서 위/아래 높이를 저장해야합니까? –