EN - FR - DE - ES - IT - PT -

LexiconDream

📇 인덱스

데이터베이스 레코드 검색 속도를 높이는 데이터 구조입니다.

인덱스

인덱스는 데이터 검색 속도를 향상시킵니다. 인덱스가 없으면 데이터베이스는 일치하는 레코드를 찾기 위해 모든 행을 스캔합니다. 인덱스가 있으면 관련 행으로 바로 이동합니다. 인덱스는 값과 위치를 매핑하는 별도의 데이터 구조입니다. 책의 색인도 같은 방식으로 작동합니다. 용어를 찾아보면 해당 페이지 번호를 찾을 수 있습니다. 모든 페이지를 읽지 않고도 원하는 용어를 찾을 수 있습니다. 데이터베이스도 마찬가지입니다.

인덱스에는 비용이 따릅니다. 공간을 차지하고, 인덱스도 업데이트해야 하므로 삽입, 업데이트, 삭제 작업 속도가 느려집니다. 모든 쓰기 작업 비용이 증가하는 것이죠. 하지만 인덱스의 장점은 읽기 속도가 빨라진다는 것입니다. 읽기 작업이 많은 워크로드에서는 인덱스가 필수적입니다. 하지만 쓰기 작업이 많은 워크로드에서는 인덱스가 너무 많으면 오히려 성능이 저하됩니다. 인덱스를 생성할 열을 선택하려면 쿼리 패턴을 이해해야 합니다. WHERE 절, JOIN 조건, ORDER BY 절에 사용되는 열은 좋은 후보입니다. 부울 플래그처럼 카디널리티가 낮은 열은 인덱스를 생성해도 검색 범위가 크게 좁아지지 않으므로 적합하지 않습니다. 복합 인덱스는 여러 열을 포함하며 여러 필드를 기준으로 필터링하는 쿼리를 처리할 수 있습니다. 복합 인덱스에서 열의 순서는 중요합니다. 데이터베이스는 선행 열에 대한 쿼리에는 복합 인덱스를 사용하지만 후행 열에 대한 쿼리에는 사용하지 않을 수 있습니다. 인덱스 설계는 절충안입니다. 목표는 쓰기 작업 속도를 불필요하게 저하시키지 않으면서 중요한 쿼리의 속도를 향상시키는 것입니다.

인덱스 유형

인덱스는 일종의 지름길입니다. 쓰기 속도와 저장 공간을 희생하는 대신 읽기 속도를 향상시킵니다. 읽기 속도가 가장 중요한 곳에 사용하세요.


Warning: session_start(): Cannot start session when headers already sent in /var/www/lexicondream.com/inc/functions.php on line 63

Comments (3)

  1. Derek S.
    Database indexes are a tradeoff. They speed up reads but slow down writes and take up space. Knowing when to add one is an art.
  2. Pam L.
    A primary key automatically creates an index. That's something a lot of beginners don't realize.
  3. Chris T.
    Without an index the database has to scan every row. With one it can jump straight to the data. Huge performance difference.

Leave a comment