안녕하세요, 나는 std::map<key, value>
을 가지고있는 데이터를 SQL 데이터베이스에 작성하려고합니다. 맵에서 키는 쉽게 검색 할 수 있도록 정렬되어 있지만 맵 항목의 sql에 테이블을 만들면 키 ID로 레코드를 얻기 위해 테이블을 검색하는 것이 얼마나 어려울까요?SQL 데이터베이스를 검색하는 것이 얼마나 효율적입니까?
답변
검색이 쉽고 효율이 색인 생성의 정확성에 달려 있습니다.
비효율적 일 수있는 것은 여러 가지 SQL select 문을 구성하고 해체하는 것입니다. 여기서 원하는 것은 변수의 "where"절에서 다른 값입니다.
이렇게하면 저장 프로 시저가 훨씬 더 효율적일 수 있습니다.
당신은 질문이 애매하지만 사과와 오렌지를 비교하는 것처럼 보입니다. SQL은 효율적으로 데이터를 검색하도록 설계되었습니다. C (또는 다른 언어) 키 - 값 쌍은 RAM으로 제한되어 있으므로 확장 성이 크게 떨어집니다. RDBMS와의 통신에는 오버 헤드가 있습니다. 메모리 압력, 디자인 효율성 (즉, 선택한 데이터 유형 및 색인), 알고리즘 C++에서 조회 (해시/B 트리) 등을 구현합니다.
하루가 끝날 때까지 올바른 질문은 , "작업에 가장 적합한 도구는 무엇입니까?" 그리고 그대로 두십시오.
지도에서 데이터베이스 테이블로 데이터를 삽입한다고 가정하면 테이블의 기본 키 즉지도에 사용하는 키가 있고지도에 중복 키가 허용되지 않으므로 각 키에 대한 고유 키가 있습니다 기록.
테이블 키의 색인을 생성하십시오. 색인을 작성하십시오. 그렇지 않으면 모든 조회가 전체 표 스캔을 수행하고 고유 행을 갖는 모든 이점이 소모됩니다. 그러나 맵핑에 100 개의 행만있는 경우에는 테이블에 인덱스를 작성하여 불필요하게 오버 헤드가 발생합니다.
인덱스를 만드는 것은 데이터베이스마다 다를 수는 없지만 사용중인 데이터베이스와 얼마나 많은 데이터를 테이블에 저장할지 모르는 상태에서 효율성을 예측하는 것은 매우 어렵습니다.
데이터가 메모리 std :: map에 적합하면 모든 DB가 훨씬 효율적입니다.
내가 메모리 데이터베이스 및 표준 : :지도 sqlite3를에 대해 테스트 한 후에는 크기 순서로 빨랐다 (그리고 SQLite는이 경우에 매우 빠른 속도 내가 본 다른 RDBMS 후입니다)
이유 : 중간 계층이없는 데이터 구조에 직접 액세스 할 수 있으므로 트리를 매우 빠르게 처리 할 수 있습니다.
그러나 데이터가 너무 크거나 너무 많은 메모리를 사용하지 않으려는 경우 RDBMS는 좋은 솔루션이며 키에 대한 색인이 매우 빠르다.
- 1. IFrame은 얼마나 효율적입니까?
- 2. 자바 스크립트는 얼마나 효율적입니까?
- 3. PHP의 substr은 얼마나 효율적입니까?
- 4. 세부 테이블이 얼마나 효율적입니까?
- 5. encodeURIComponent는 얼마나 효율적입니까?
- 6. Mongodb에서 ObjectId를 검색하는 것이 얼마나 빠릅니까?
- 7. 두 텍스처의 출력은 얼마나 효율적입니까?
- 8. LINQ에서 SQL로 UDF 및 sproc을 호출하는 것이 얼마나 효율적입니까?
- 9. 외부 XML을 구문 분석하거나 데이터베이스를 조회하는 것이 더 효율적입니까?
- 10. 평균적으로 스크립팅 엔진은 얼마나 효율적입니까?
- 11. 큰 그래프를 저장하는 데 SBCL이 얼마나 효율적입니까?
- 12. 데이터베이스를 검색하는 앱
- 13. 어떤 SQL 문이 조인 또는 존재하는 것이 더 효율적입니까?
- 14. 파이썬 하위 문자열 추출은 얼마나 효율적입니까?
- 15. SSIS - 작업의 병렬 실행 - 얼마나 효율적입니까?
- 16. 얼마나 효율적입니까? element.cloneNode (true) (딥 클론)?
- 17. 화성을 사용하여 7000 행을 업데이트하는 것이 효율적입니까?
- 18. 1MB 파일을 지속적으로 편집하는 것이 더 효율적입니까?
- 19. iPhone : 검색하는 데 얼마나 걸립니까?
- 20. 데이터베이스를 닫는 것이 필수적입니까?
- 21. 얼마나 자주 QT에서 데이터베이스를 설정해야합니까?
- 22. Scimore SQL 데이터베이스를 사용합니까?
- 23. SQL Server에서 VARCHAR의 최대 크기는 얼마나 엄격합니까?
- 24. Drush를 사용하는 것이 얼마나 안전합니까?
- 25. NSAutoreleasePool을 만드는 것이 얼마나 비쌉니까?
- 26. 얼마나 자주 sqlite 데이터베이스를 열 수 있습니까
- 27. Google App Engine에서 이전하는 것이 얼마나 어렵습니까?
- 28. ADO.NET에서 데이터베이스를 삭제하거나 새로운 데이터베이스를 생성하는 것이 가능합니다.
- 29. 데이터베이스를 비우는 것이 무슨 뜻입니까?
- 30. Domathi에서 DOM을 사용하는 것보다 XPath가 얼마나 효율적입니까? 예를 들어
왜 검색해야합니까? "검색"이란 정확히 무엇을 의미합니까? 그것은 SQL의 핵심이므로 원하는 데이터 만 선택할 수 있습니다. – Falmarri
SQL DB가 std :: map보다 빠르냐고 묻고 있습니까? –
키로 레코드를 검색하는 속도가 얼마나 빠르거나 느린 지 알고 싶었습니다. – kox