이벤트 및 분기 기반 응용 프로그램이 있습니다. 저는 가지가있는 사건과없는 사건이 두 가지 있습니다.최상의 데이터베이스, NOSQL 대 MySQL
이벤트 및 분기에는 위도와 경도가 있습니다.
이벤트에는 여러 개의 분기가있을 수 있습니다. 다른 지리적 좌표에서 거리 별 이벤트를 정렬하고 싶습니다.
브랜치가있는 이벤트의 경우 브랜치의 위치를 사용하여 이벤트가 얼마나 가까운 지와 이벤트 자체의 위치를 사용해야하는 이벤트를 찾아야합니다.
성능에 영향이없는 MySQL에서도 가능합니까? 아니면 잘못된 종류의 데이터베이스를 사용하고 있습니까? 스크립트로 다른 NOSQL 데이터베이스를 사용해야 현재 MySQL 및 포드 데이터를 해당 데이터베이스로 내보낼 수 있습니다.
이것은 약간의 설탕을 추가하는이 프레임 워크에서 ATM을 사용하는 기본 쿼리입니다 (당연히 이것은 일반 MySQL에서는 작동하지 않습니다), 분기가없는 이벤트는 올바른 순서로 나타나지 않습니다. 엔티티 사이의 관계의 어떤 종류가 있는지
SELECT
t.*,
DISTANCE(\"$latitude\", \"$longitude\",
IF(t.branches.latitude, t.branches.latitude, t.latitude),
IF(t.branches.longitude, t.branches.longitude, t.longitude)
) as distance
FROM table as t
ORDER BY distance.
지점 및 이벤트는 얼마나 역동적입니까? 얼마나 많은 사람들입니까? 나는 당신의 경우 공간 인덱스가 작동해야한다고 생각한다. 접근 방식과 야구 경기 성능 수치는 [이 프레젠테이션] (http://www.scribd.com/doc/2569355/Geo-Distance-Search-with-MySQL)을 참조하십시오. – 9000
백엔드의 CMS를 통해 업데이트합니다. 얼마나 멀리 있는지보고자하는 위치는 사용자의 위치에서 가져온 것이므로 변경 될 수 있습니다. –
공간 인덱스에 테스트를 제공한다고 가정합니다. 표를 예를 들어 채우십시오. 10000 개의 알려진 점, N 개의 점을 임의의 위치로 닫으십시오. '계획 설명', 시간, CPU로드, 메모리로드를 측정하십시오. 손으로 결과의 정확성을 직접 확인할 수 있는지 확인하십시오. 나는 그것이 속도와 자원 소비로 손으로 코딩 된 솔루션을 이길 것이라고 생각한다. – 9000