[알자] 인덱스 걸기 내용

인덱스 거는방법등에 관해 icq 로 나눈 대화를 캡춰했습니다.

DB Index 가 생소하시면 참고하세요^^


^SSSoiju^  오후 4:11  쿼리 안바꾸고 속도 빠르게 할 방법 없을까?
^술병대    오후 4:11  create index ndx_identities_n01 on
                                    identities ( identity );
                                    
                                    이거 좀 실행해봐요...
^술병대    오후 4:12  인덱스 생성하는 거....
^SSSoiju^  오후 4:12  이거 고대로 하면 되?
                                    디비 안날려?
^술병대    오후 4:12  안날리고....
^SSSoiju^  오후 4:12  겁나
^술병대    오후 4:12  그런거 아닙니다...
^술병대    오후 4:13  그럼 디비파일 복사 해놓은면 되잖아여...
^SSSoiju^  오후 4:14  create index ndx_identities_n01 on
                                    identities ( identity );
                                    ERROR 1121: Column 'identity' is used with
                                    UNIQUE or INDEX but is not defined as
                                     NOT NULL                
^SSSoiju^  오후 4:14  바꿔볼께
^SSSoiju^  오후 4:17  했다
^술병대    오후 4:17  alter table add ...
                                    요렇게 했어요???
^SSSoiju^  오후 4:18  alter table change..
^술병대    오후 4:19  속도 차이 나요???
^술병대    오후 4:19  조금 나아진거 같은데요....
^SSSoiju^  오후 4:20  후와~~~~~~
                                    
                                    조금이 아냐~~~~~~~~~~~~~~~~~~
^술병대    오후 4:20  많이 나아졌나요???  ^^
^SSSoiju^  오후 4:20  이거 원리가 뭐야?????
^술병대    오후 4:20  경험
^SSSoiju^  오후 4:20  갈켜도~~~~~~~~~~~~~~~
^SSSoiju^  오후 4:21  총알이다 총알
^술병대    오후 4:21  내공이 3갑자 정도 되야 알 수 있는 건데요...
^SSSoiju^  오후 4:21  음....
^SSSoiju^  오후 4:21  암튼 연구해봐야지...
^SSSoiju^  오후 4:21  그거 한줄 실행시켰다구 이렇게 바껴???
^술병대    오후 4:22  잘 써면 20년 공력을 1갑자 이상으로 경공을
                                    펼칠수 있지만
                                    잘못 써면 3갑자 공력이 10년 공력도 안나올 수
                                    도 있어요...
^SSSoiju^  오후 4:22  으음...
                                    그렇겠지...
                                    암튼 좋은 구경 했다
                                    죽인다 죽여
^술병대    오후 4:23  허허...그럼 다른 sql문 보여줘요...
^술병대    오후 4:23  또 만듭시다...
^SSSoiju^  오후 4:23  다른거 어떤거?
^술병대    오후 4:23  테이블 2개 이상 걸은거...
^SSSoiju^  오후 4:23  아까 보내준 쿼리는 어떤 테이블에
                                    해당되는거야?
^SSSoiju^  오후 4:24  이젠 없을껄?
^SSSoiju^  오후 4:24  그건 영구적인건가?
                                    데몬 죽이면 또 실행시켜줘야 하는건가?
^술병대    오후 4:25  영구...적...
^SSSoiju^  오후 4:26  테이블 덤프하면 그 인덱스도 같이 덤프되나?
^술병대    오후 4:26  문법
                                    create index index_name on table_name (
                                    원하는 column 들 )
^술병대    오후 4:26  같이 되요...
^SSSoiju^  오후 4:26  덤프한거 sql 보면 이해가 되겠네?
^술병대    오후 4:27  create index index_name on table_name ( col1
                                    asc, col2 desc )
                                    asc : 오름차순
                                    desc :내림차순
                                    안적으면 오름차순
^SSSoiju^  오후 4:27  이거 그럼 캐쉬 원린가?
^술병대    오후 4:28  mysql 문서 문법
                                    alter table table_name add index index_name
                                    ( column 들 )
^술병대    오후 4:28  캐쉬라 봐도 되요...
^술병대    오후 4:28  물리적으로 생성되죠....
^SSSoiju^  오후 4:29  그런데 테이블은 안보이구.. 컬럼이 따로
                                    생성되는건가?
^술병대    오후 4:29  아까껀 identities 인가 하는 거에 걸었어요...
^술병대    오후 4:29  그건 안 보이죠...
^SSSoiju^  오후 4:29  보이질 않는데 덤프에는 따라온다구?
^술병대    오후 4:29  db 자체 관리가 되기 때문이죠...그거 도큐먼트
                                    해야하는 겁니다...잊어 버리면 클나요..
^술병대    오후 4:30  sql 문 또 하나 보내줘요....
^술병대    오후 4:30  보구 만들어야죠...
^SSSoiju^  오후 4:30  만약에 서버 바꾸고,
                                    덤프한 파일의 sql 문만 끌어와서 디비
                                    옮긴다면..
                                    그때도 상관없이 이 속도 그대로 나게되나?
^술병대    오후 4:30  그렇죠....
^SSSoiju^  오후 4:31  서버 바꾸면 mysql 이 새로 설치되서 인덱스가
                                    있질 않을텐데?
^술병대    오후 4:31  덤프에 create table 이 있으면 create index
                                    도 같이 있죠...
^SSSoiju^  오후 4:31  아하~
^술병대    오후 4:32  빨리 보내줘요....
^술병대    오후 4:32  오늘 조금 일찍 갈려구 하거던요...
^술병대    오후 4:32  몇시에 퇴근 할 거요..
^SSSoiju^  오후 4:32  암때나..
^SSSoiju^  오후 4:33  찾았어..
                                    
                                      PRIMARY KEY (id),
                                      KEY ndx_identities_n01 (identity)
                                    
                                    요거네^^
^SSSoiju^  오후 4:34  각 테이블마다 이거 주면 전부 속도
                                    빨라지는강?
^술병대    오후 4:35  아뇨...아까 이야기 했듯이 적절하게...
^SSSoiju^  오후 4:35  그렇군.. 언젠가 얘기해줬었지..
                                    오히려 늦어질수도 있다고 들은거같애
^술병대    오후 4:36  오로지 경험..왜냐하면 DB엔진에 관한 자료가
                                    없고 어떤식으로 인덱스를 처리하는지
                                    전부 알 수 가 없으니까요...
^술병대    오후 4:36  공부를 엄청나가 많이
                                    하던가...소스보고...흐흐..
^SSSoiju^  오후 4:36  음..
                                    대충 뭔지 감이 잡힌다
^술병대    오후 4:36  만들고 실행하고 안좋으면 지우고 다시
                                    하고...그중에 가장 빠른거...
^술병대    오후 4:37  같이 걸려있는 수많은 문장에 골고루 혜택이
                                    가는 인덱스.
^SSSoiju^  오후 4:37  그렇지..
                                    그런데 인덱스 주는 형식도 그렇게 이것저것
                                    할수 있는가보지?
                                    컬럼 1~ 10 까지 일일이 줘보구 고르고
^술병대    오후 4:38  아뇨...일단 다른거 보내줘요...몇개 보면서
                                    공부해요...
^SSSoiju^  오후 4:38  인덱스 지우는건 어떻게해?
^술병대    오후 4:38  drop index index_name
^SSSoiju^  오후 4:38  다른건 테이블 복합된거 없어
^술병대    오후 4:39  그래요??? 그럼 index 더 만들어요...지역, ID
                                    같은거...
                                    학교, ID, 지역...이런씩으로 조합해서...
^술병대    오후 4:40  테이블 하나만 했던거라도 줘요...
^SSSoiju^  오후 4:40  테이블 하나에 인덱스 여러개 넣어도 괸챦은가?
^술병대    오후 4:40  한 두개 봐줄 께요...
^술병대    오후 4:40  넣어도 되요...
^술병대    오후 4:40  몇개 까지 지원하는 지는 모르지만...한 문장이
                                    동시에 두개씩은 안 써요...
^술병대    오후 4:41  문장에 따라 인덱스를 써서 느려질 경우도
                                    있어요..이때 인덱스를 못 쓰게 하는 것도
                                    있어요
^SSSoiju^  오후 4:41  한 문장이 인덱스 걸린 컬럼 두개를 부르면
                                    안된다고?
^술병대    오후 4:41  여러개 중에서 최고 좋은거 지가 찾아서
                                    써거던요...
^술병대    오후 4:42  근데 그게 이상한 걸 지가 고를 수도 있어요...
^SSSoiju^  오후 4:42  인덱스는 좀 아껴써야겠군
^술병대    오후 4:43  욕심 내도 안되고 인색해도 안돼요...
^SSSoiju^  오후 4:43  으흠~
^술병대    오후 4:43  없이 써다가 좀 막히는 거 같다 생각
                                    들면...그때 해도 안 늦어여...
^SSSoiju^  오후 4:44  그래 그래야겠어
                                    속도에 갈증느끼면.. 그때 추가해야지
^술병대    오후 4:45  그래도 기본 적인게 있죠...
                                    예)
                                    select 학생
                                      from 학생 테이블
                                     where 지역 = '경기도'
                                    ;
                                    요것만 보면 지역하구 학생 넣어주면 좋죠...
^술병대    오후 4:46  공지 쪽에도 아까 같은 거 넣어주고요...
^SSSoiju^  오후 4:47  좀 쓰다가 젤 많이 호출하는데다가 넣어야지
^SSSoiju^  오후 4:48  선생테이블 identity 에도 넣어주야겠구만
^술병대    오후 4:48  그렇게 하지 말구....선생 쪽에다 지역하구
                                    아뒤 넣어요...
                                    
^술병대    오후 4:48  학생도 마찮가지구요...
^술병대    오후 4:48  선생 찾기에 있으니까요..
^SSSoiju^  오후 4:49  학생은 아직 많지 않아서 내가 연습해서 혼자
                                    넣어볼래
^술병대    오후 4:49  그리고 선생쪽에 학교 + 아뒤
^SSSoiju^  오후 4:49  지역 , 아뒤
                                    이렇게
^술병대    오후 4:50  지역 + 아뒤 : 하나
                                    학교 + 아뒤 : 두개...
^SSSoiju^  오후 4:50  인덱스하나가 두개를 포함해??
^SSSoiju^  오후 4:51  이렇게 넣어주면 안되나?
                                     create index ndx_identities_n01 on teacher
                                    ( identity );  
^술병대    오후 4:51  create index index_name on 선생 ( 지역, 아뒤
                                    ) ;
                                    create index index_name on 선생 ( 학교, 아뒤
                                    ) ;
                                    요렇게요...
^술병대    오후 4:51  인덱스 이름도 Unique해야됩니다...
^SSSoiju^  오후 4:52  테이블이 달라도 유니크로?
^술병대    오후 4:52  규칙
                                    ndx_(index) + table_name + n01 ( 일련번호 )
                                    
^술병대    오후 4:53  ndx_선생_n01 이렇게
^술병대    오후 4:53  다른방법
                                    ndx_선생_col1_col2 ==> 요건 너무 길수도
                                    있어서 좀 잘 안써요...
^SSSoiju^  오후 4:54  (지역,아뒤)  이거랑  (아뒤,지역)
                                    이거랑 차이가 나기도 하나?
^술병대    오후 4:55  차이가 나죠...
                                    where 지역 = '지역' and 아뒤 = '아뒤'
                                    이럴 경우 어느걸 써느냐는 DB 엔진이 알아서
                                    하는 데 차이가 난다고 보죠...
^술병대    오후 4:56  자료가
                                    경기도, A
                                    경기도, B
                                    경기도, C
                                    ...
                                    경기도, Z
                                    요렇게만 있을 때 경기도로 찾고 내려가면서
                                    J를 찾는 거하고
                                    J를 먼저 찾고 경기도인지 찾는 거 하고
                                    다르죠...
                                    
^술병대    오후 4:56  분포도라 부르죠...
^SSSoiju^  오후 4:57  음.. 그거까진 알 방법이 없겠군..
                                    차이가 나도 큰 상관 없겠어
^술병대    오후 4:57  분포도에 따라 어떻게 인덱스를 쓸지
                                    경정해야죠...
^술병대    오후 4:57  select 지역, count(*)
                                      from 선생
                                     group by 지역
                                    이렇게 해보면 알 수 가 있죠...
^SSSoiju^  오후 4:58  아뒤, 지역 인덱스 넣었당
^술병대    오후 4:58  반대로
                                    select 아뒤, count(*)
                                      from 선생
                                     group by 아뒤
                                    
^술병대    오후 4:58  지역 아뒤로 넣어요...
^SSSoiju^  오후 4:58  벌써 아뒤지역으로 넣었어
^술병대    오후 4:59  지우고 지역 아뒤로 넣어요...
^술병대    오후 4:59  아뒤로 지역 찾는 건 별루 없어요...
^술병대    오후 4:59  같이 해봐요...
^SSSoiju^  오후 4:59  drop index ndx_teacher_n01 from teacher
                                    이렇게 하면 되나?
^술병대    오후 4:59  두개 중 어느걸 쓰는지 알 수 잇을 거니까요...
^술병대    오후 5:00  두개만든 다음 돌려서 시간 검사...
                                    둘중하나 지우고 돌리고
                                    지운거 다시 만들고 다른거 지우고 돌리고
                                    시간검사...
^SSSoiju^  오후 5:01  drop index ndx_teacher_n01
                                    이거 안되네
^술병대    오후 5:03  alter table teacher drop index
                                    ndx_teacher_n01 ;
                                    
^SSSoiju^  오후 5:05  별 차인 없구만..
^SSSoiju^  오후 5:05  이제 학교,아뒤 넣어야지
^술병대    오후 5:06  넣으면 연락 줘요...
^SSSoiju^  오후 5:08  총알디비 됐네^^
^SSSoiju^  오후 5:08  인덱스 키에 NULL 들어가면 어케되지?
                                    디비 뒤집히나?
^술병대    오후 5:08  고래도 늦네요...
^술병대    오후 5:08  null 들어가면 index는 취급안 해요...
^SSSoiju^  오후 5:09  하하
                                    그건 디비 전부 불러와서 그렇고
                                    t_list0.html
                                    요기서 테스트중이야
^술병대    오후 5:10  서울이 좀 느리네요...
^SSSoiju^  오후 5:10  음.. 그렇더군..
^술병대    오후 5:10  아뒤 + 지역 요거는 어쨌어요...지워요...
^SSSoiju^  오후 5:11  그거 지우고 지역,아뒤 fh sjgdjTdj
^SSSoiju^  오후 5:11  넣었어
^SSSoiju^  오후 5:11  리로드하면 서울도 총알이야
^술병대    오후 5:11  근데 이렇게 느리다니....
^술병대    오후 5:12  느려요....
^SSSoiju^  오후 5:12  t_list0.html
                                    요기서 봐봐
^술병대    오후 5:12  약간 빨라졌네요....
^술병대    오후 5:12  그래도 느려요...
^SSSoiju^  오후 5:13  허허
                                    난 대만족인걸
^SSSoiju^  오후 5:15  터미널에서 쿼리 직접 때려봤는데
                                    디비때문이 아니고 php 스크립에서 부하줘서
                                    그런거같어
                                    아직 정리 다 안됐거덩
                                    레벨 주는 부분만 정리하면 광속 나오게떵
^술병대    오후 5:15  그렇겠네요...
^술병대    오후 5:15  그럼 디비 보다 소스좀 고쳐봐요...^^
^SSSoiju^  오후 5:16  흘흘
                                    오늘 막강한 무공을 터득했다 움홧홧홧!!!
^술병대    오후 5:16  그리고 하나더 추가 해야되요...
                                    ( 학교 + 아뒤 )
^SSSoiju^  오후 5:16  그거 넣었지비 크크크
^술병대    오후 5:16  호호...
^SSSoiju^  오후 5:17  대포 한잔 해야지?
^술병대    오후 5:17  아라서요...
^술병대    오후 5:17  몇시에 볼까요...



출처 : http://www.phpschool.com/bbs2/inc_view.html?id=5157&code=database2&start=210&mode=search&s_que=%C0%CE%B5%A6%BD%BA&field=title&operator=and&period=all

Press ESC to close