질문/조언질답게시판
Extra Form
PHP PHP 7.2
CMS Rhymix

 

스키마에 어떤 컬럼에는 index="idx_regdate" 이런 index 라는 것이 들어가 있는데요,.

이게 하는 역할과 넣는 형식이 정해져 있는건지 궁금하네요.

  • profile
    디비에 인덱스 설정해주는겁니다.
    왜 해주는지는 구글 검색해보시면 자세히 알수 있어요
  • profile

    예전에 알림센터에 문제 생겨서 예전에 기진곰님께서 디버깅 해주신적 있으시죠?

    로딩속도가 원채 느려졌다고 하실때요

    바로 그 인덱스 설정이 잘못되었다는겁니다.

    음.. 미리 디비의 정보들을 따로 가지고 있다가 해당 정보를 이용해서 쿼리를 사용할 때 속도를 빠르게 해주기 위해서 사용합니다.

  • profile profile
    제가 컬럼 하나를 만들어서 조회수를 업데이트때 마다 카운트를 증가시킬 것인데요.
    나중에 이 조회수가 많은 순으로 정렬를 해서 출력할 건데 따로 인덱스 설정이 필요 없지요?
  • profile profile
    필요합니다.

    엄밀이 따지면 따로 데이터를 저장한다는 개념이 아니라 디비에 입력되는 순서를 따로 지정해서 가지고 잇는다는 의미가 강하거든요 ㅎㅎ

    예를들어

    documemt_srl 의 순서가

    1
    2
    3
    4
    5

    이렇게 저장된것과

    1
    3
    4
    2
    5

    이렇게 순서를 가지고 저장되어있는 것중에 3이상의 데이터를 찾는다면 사실 아래쪽처럼 인덱스가 없는 방식에는 전체를 풀스킨 다 해봐야할 수밖에 없죠.

    그런데 인덱스를 걸어두면 그걸 이미 순서를 디비에서 알고 있는 겁니다.

    그래서 첫번째처럼 정렬된거로 바로 데이터를 가져와서 4, 5, 번은 쿼리할 필요 없이 거기에 해당되는 내용으로 가져오게 되는 것입니다.

    그리고 특정 번호를 딱 찝어서 가져올때도 딱 해당 위치에 있는 숫자를 지정해서 가져올 수 있거든요

    인덱스를 안걸어두면 대부분 디비를 전체다 뒤져서 해당되는 내용들을 중복적으로 가져온다고 생각하시면 됩니다.
  • profile profile
    규칙이 컬럼명 앞에 idx_ 를 붙이는게 규칙인가요?
  • profile profile
    xe에서는 xml 쿼리방식을 쓰기 때문에 xml 스키마 파일에

    index=idx_칼럼이름

    방식으로 지정하죠 ㅎ

    만약 이미 만들어진 디비에 인덱스를 추가하는 경우라면 class 에 인덱스를 추가하는 코드를 따로 넣어줘야 합니다.

    (칼럼을 생성하는 코드추가된것처럼 인덱스도 따로 추가 가능한 코드들이 존재합니다.)
  • profile profile

    감사합니다. 많이 배웠습니다. 람보님 최근 커밋 중에 닉네임 변경 관련 해서 인덱스 추가했던 커밋 있었던 거 같던데 그게 맞다면 나중에 그거 참조하겠습니다.

     

    커밋 보고 완료 했습니다.

  • profile profile
    :)
  • profile
    DB에 들어간 줄이 많아질수록 인덱스가 매우 중요해지더라구요.
    데이터가 쌓일수록 속도 차이가 어마어마하게 나더군요.