나는 대략 구조를 다음과 함께 데이터베이스가 :sqlite 데이터베이스에서 문자열 목록을 선택하는 가장 빠른 방법은 무엇입니까?
표 (이름) - < 표 2 - < 표 3 (점수)
-<가 많은 관계로 일을 의미합니다. 내가해야 할 일은 주어진리스트의 모든 문자열에 대해 최대 점수 값을 가진 table3의 링크 된 항목을 찾는 것입니다. 내가 지금하는 방식은 아주 느리고, 속도가 빨라질 수도 있습니다. 내가이 일을하고 어떻게
가 :
SELECT k.score,k.yaw,k.pitch,k.roll,k.kp_number,k.ke_number,k.points,k.elems --various fields of third table
FROM File
JOIN FaceDetection AS d ON d.f_id=File.file_id --joining second table
JOIN FaceKey AS k ON k.face_det=d.fd_id --joining third table
WHERE name=:fld
ORDER BY k.score DESC
나는 위의 텍스트 쿼리를 준비, 거래를 열고주기에서 i는 데이터베이스에 관심이 항목을 검색 한 다음 트랜잭션을 커밋합니다. 더 나은, 빠른 방법은 무엇입니까?
쿼리가 정상적으로 처리되었습니다. 데이터베이스는 많은 최적화 자체를 수행합니다. 거래 통화도 그렇게해야합니다. 더 효율적인 방법은 없습니다. –
'ON '의'AND' 조건으로'WHERE' 조건을 넣을 수 있습니까? –
ID 필드에 색인을 넣었습니까? – George