저는 데이터베이스에 익숙하지 않고 검색해야하는 필드에 인덱스를 추가하면 검색 시간이 크게 단축 될 수 있다는 점을 읽었습니다. 나는이 현실을 이해하지만 그것이 실제로 어떻게 작동하는지 궁금하다. 나는이 주제에 대해 조금 연구했지만, 어떻게 작동하는지에 대한 기술적 인 대답이 아니라 선명하고 간결한 것을 발견하지 못했다.데이터베이스 필드에 인덱스를 추가하면 해당 필드를 검색하는 속도가 빨라지는 이유는 무엇입니까?
필자는 책 뒤쪽의 색인과 비슷한 비유를 읽었지만 고유 한 요소 (예 : 사용자 데이터베이스의 전자 메일 주소)의 데이터 필드의 경우에는 백 도서 비유의 경우 인덱스되지 않은 검색과 동일한 선형 검색 시간을 제공합니다.
검색 시간을 크게 단축하기 위해 여기에서 진행되는 작업은 무엇입니까? B+-Trees을 사용하여 검색하는 방법에 대해 조금 읽었지만 설명이 너무 많습니다. 내가 찾고있는 것은 무엇이 진행되고 있는지, 기술적 세부 사항이 아닌 개념적으로 이해하는 데 도움이되는 내용을 간략하게 살펴 보는 것입니다.
여전히 충분한 답변을 제공하지 못합니다. 테이블에서는 일들이 필드 (열)로 저장되기 때문에 데이터 필드를 책의 장으로 생각할 수 있습니다. 따라서 책의 전자 메일 장을 읽는다면 전자 메일이 책의 색인에있는 것처럼 빨리 보는 것이 가능합니다. 우리는 찾고자하는 항목에 대해 전체 표를 스캔하지 않고 관련 분야 만 검색합니다. –
그래서 각 챕터의 각 행에 대해 * ALL * 데이터를 다시 저장하도록 제안하고 있습니까? 당신은 이름, 성, 생년월일, 출생지, 사용자 이름, 이메일 및 1000 단어의 전기를 나열하여 성으로 정렬 된 "성"장이 있습니다. 그런 다음 이름, 성, 생년월일, 생년월일, 사용자 이름, 전자 메일 및 1000 단어 전기를 다시 나열하여 사용자 이름별로 정렬 된 "사용자 이름"장이 있습니다. 그런 다음 이름, 성, 생년월일, 출생지, 사용자 이름, 전자 메일 및 1000 단어 전기를 나열하는 전자 메일로 정렬 된 "전자 메일"장이 있습니다. 이것은 공간의 비효율적 인 사용처럼 보입니다 ... –
좋아,이 방법으로 생각 해봐. 고유 한 전자 메일 주소 (반복 없음)로만 구성된 책이 있습니다. 다른 콘텐츠가 없습니다. 이 책에서 우리가 색인을 가지고 있다면 그것은 도서 내용의 정확한 사본이 될 것이고, 어떻게 든 정렬 될 것입니다. (색인을 만드는 사람에 따라 다르지만). 따라서이 경우 책이나 색인에서 전자 메일 주소를 검색하는 것은 동등합니다. 이것이 내가 서적 색인 유추가 실패했다고 말하는 이유입니다. 인덱싱 된 데이터베이스 검색은 전체 스캔보다 훨씬 빠른 전자 메일을 찾을 수 있기 때문에 분명히 그 이상입니다. –