mysql(mariadb) °áÇÕ À妽º Áú¹® µå¸³´Ï´Ù.

   Á¶È¸ 2895   Ãßõ 0    

결합 인덱스 질문을 좀 하고 싶습니다.. 

1년전에 제가 만든 프로그램이 php 로 되어있는데 .. 잘 돌아가서 그냥 신경 안쓰고 있었는데 

어제 업체에 가서 보니 .. 검색시 무척 느리다고 느껴서 .. 지금 보는 중입니다.. 

1년전엔 아무 개념이 없는 상태여서 인덱스만 하면 되는줄 알고 단일 칼럼별로 인덱스를 걸어놨습니다.

결합인덱스 전혀 없이요 .. 느릴수밖에 없다고 생각 됩니다.. 그래서 .. 자주 검색하는 항목 위주로 결합 인덱스를

하니 10배 20배 이상 향상 되는걸 확인 했구요 .. 그냥 꽁짜로 쓰고 계시긴 하지만.. 너무 제가 무관심 했나 

싶은게 너무 미안하더군요 ..  그래서 결합 인덱스를 하려고 하는데 .. 제일 많이 쓰는쪽이 검색 쪽이거든요 .. 

검색 조건이 많지는 않은데 .. 기준일자가 A,B,C,D,E,F 타입이 있고 컬럼이 다 틀리며

주문자 이름, 주문자 전화1, 주문자 전화2, 수취인, 수취인 전화1, 수취인전화2, 주소, 제품명 

이정도 순입니다. 그런데 결합 인덱스를 작성 하려면 .. 보통 2컬럼 3컬럼 이런식의 예제만 있어서 혼란 스러운데요 .. 

조합은 

기준일자 a타입 19-01-01월부터 ..19-03-01 까지 주문자 김제연(통합검색으로 해놔서 LIKE %김제연%) + 주소 있을때 있고 없을때 있구요 

초보때 만든거라 LIKE 의 개념이 없어서 그냥 %주소% 이런식입니다 --;; 

보통은 이름 이나 전화번호로 검색해서 .. 이름 + 전화번호가 같이 검색 되는 경우는 잘 없구요 .. 한항목만 검색하게 되어있기 때문에 

보통 저런식입니다.. 4~5개 칼럼이 있지만 이건 LIKE 가 아니어서 그냥 단일 인덱스로 놔도 될듯?

제가 생각하기엔 회사코드, 기준일자a, 주문자, 주소, 전화번호

회사코드, 기준일자B, 주문자, 주소, 전화번호

회사코드, 기준일자C, 주문자, 주소, 전화번호

회사코드, 기준일자D, 주문자, 주소, 전화번호

회사코드, 기준일자E, 주문자, 주소, 전화번호

회사코드, 기준일자F, 주문자, 주소, 전화번호

이런식으로 만들어야 할꺼 같은데 .. 이런식으로 .. 주문자 주소 전화번호 이런 인덱스가 중복된 상태에서 만드는게 맞는건지 

틀린건지를 모르겠습니다.. 실제 SEARCH 의 검색 조건 수는 17개 정도 되는것 같습니다.. 위는 질문 하기 위해서 .. 몇개만 

뺀거구요 .. 저렇게 하는게 맞는건지? 어떤식으로 나눠야 하는건지 모르겠습니다.. (나열하자면.. 판매처, 생산처, 쇼핑몰, 배송상태,

등등 입니다 이것들은 like 가 아닌 factory="하나공장" ) 이런식이구요 ..

mariadb 10.x 를 사용중입니다.. 조언 주시면 열심히 공부하겠습니다.

ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
¾÷¹«¿¡¼­ ÁÖ·Î »ç¿ëÇÏ´Â °Ë»ö Á¶°Ç¸¸  index°í·Á
%°Ë»ö¾î%  Ä÷³Àº index Àû¿ëµÇÁö ¾ÊÀ½
³Ê¹« ¸¹Àº index´Â Àüü ¼º´É °¨¼Ò ÃÊ·¡
¹üÀ§°Ë»ö(±â°£°Ë»ö) Ä÷³Àº °áÇÕÀ妽º »ý¼º½Ã °¡Àå µÚ

DBMS Á¾·ù¿Í ¹öÀü¿¡ µû¶ó ´Ù¸£Áö¸¸
ÀϹÝÀûÀÎ ¿øÄ¢ ÀÔ´Ï´Ù.
     
±èÁ¦¿¬ 2019-03
³× . Á¦°¡ °£°úÇÑ°Ô ...
À̸§À» °Ë»öÇÑ´Ù°í Ä¡¸é.. name Ä÷³ÀÌ ÀÖ°í name Ä÷³Àº À妽º°¡ °É·Á ÀÖ½À´Ï´Ù. (ÀÌ·±½ÄÀ¸·Î ´ÜÀÏ À妽º·Î¸¸ Çسù½À´Ï´Ù)
Áö±Ý »óÅ¿¡¼­ .. name like '%±èÁ¦¿¬%' À¸·Î °Ë»öÇϸé.. 40¸¸°ÇÀ» ALL·Î °Ë»öÇÕ´Ï´Ù.. À妽º ¾ÈŸ±¸¿ä . 1.1 ~1.5 ÃÊ°¡ °É¸®°í ÀÖ±¸¿ä
±×·±µ¥ .. ´Ù¸¥ Ä®·³°ú °áÇÕ À妽º¸¦ »ç¿ëÇؼ­ Á¶È¸Çϸé...  0.05ÃÊ °¡ °É¸³´Ï´Ù. 193000°ÇÀ̱¸¿ä ¶Ç ÇϳªÀÇ À妽º¸¦ Ãß°¡Çؼ­ ..
Á¶È¸ÇØÁÖ¸é ±×¸¸Å­ ÁÙ¾îµç 10¸¸°Ç¿¡¼­ °Ë»öÇؼ­ .. 0.015 ÃÊ°¡ °É¸³´Ï´Ù...  ±×·¡¼­ .. º¹ÇÕ À妽º¸¦ °É±ä ÇØ¾ß Çϴµ¥
¾î¶»°Ô °Å´Â°Ô ÁÁÀ»Áö°¡ .. Àǹ®ÀÔ´Ï´Ù..
          
´Ù¸¥Ä÷³ °Ë»ö Á¶°Ç ¶§¹®¿¡ ÇØ´ç  index¸¦ Ÿ¼­ ±×·² °Å¿¹¿ä.
µ¿ÀÏ Á¶°Ç¿¡ À̸§À» »©°í Á¶È¸Çصµ
ºñ½ÁÇÑ ¼Óµµ ³ª¿Ã °Å¿¹¿ä.

Index¼³°è¸¦ ÇÒ¶§
½½·Î¿ì Äõ¸® ¼öÁýÇؼ­
½ÇÇà¼ö ¸¹Àº Äõ¸®ÀÇ °Ë»öÁ¶°Ç À§ÁÖ·Î ÇÏ°í
°¡²û »ç¿ëÇÏ´Â Á¶°ÇÀº ´À¸®°Ô »ç¿ë ÇÏ°Ô Çϰųª
°Ë»ö Çʼö Á¶°ÇÀ» ÁÝ´Ï´Ù.

Index»ý¼ºÇÑ Ä÷³Àº °Ë»ö¾î% ó·³ µÞlike 󸮸¸ Çؼ­
Index¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô ÇÁ·Î±×·¥ ÇÕ´Ï´Ù.


óÀ½À¸·Î (238,415)
Á¦¸ñ
2CPU : ÀÚÀ¯°Ô½ÃÆÇ 03-13   297   ±èÀå¿ì
2CPU : NAS 03-13   5375   breakersDaD
¿Ï·á (1)
2CPU : ÆǸŠ03-13   222   ³Ý½Ä½º
¿Ï·á (1)
2CPU : ÆǸŠ03-13   318   ³Ý½Ä½º
2CPU : ±¸¸Å 03-13   81   Å×·¯¸®½ºÆ®
2CPU : ÀÚÀ¯°Ô½ÃÆÇ 03-13   494   »ßµ¹À̽½ÇÄÀÌ
2CPU : ÆǸŠ03-13   386   »ç°úÇÑÀÔ
2CPU : ÆǸŠ03-13   315   »ç°úÇÑÀÔ
2CPU : QnA 03-13   2451   winner712
2CPU : QnA 03-13   2545   ÄÄÀ߸ø
2CPU : ÀÚÀ¯°Ô½ÃÆÇ 03-13   217   Àº´ÜÇâ
2CPU : ÆǸŠ03-13   499   Çٽɱâ¼ú
2CPU : ÆǸŠ03-13   725   Çٽɱâ¼ú
2CPU : ÆǸŠ03-13   703   ÀüÁ÷P¿¬±¸¿ø
2CPU : DIY-È£ÀÛÁú 03-13   6102   ¼º±â»ç