데이터 및 C언어/SQL 공부

[SQL] 데이터 분석을 위한 SQL 기초 공부(3)_feat:데이터리안

  • -
반응형

 

 

[SQL] 데이터 분석을 위한 SQL 기초 공부(3)_feat:데이터리안

 


 

∇ LIKE 심화.

         - 내가 찾고자 하는 대상이 명확하고, 패턴을 가지고 데이터를 불러오고 싶은게 아니라면, 

             =으로 대상을 특정해줘도 괜찮습니다.

 

     위의 LIKE를 사용해서 뽑은 데이터와

   = 으로 뽑은 데이터는 동일한 것을 확인 할 수 있습니다. 특정 대상이 명확하기 때문입니다.

   = 을 사용하는게 연산속도면에서도 훨씬 효율적입니다.

 

 

 

    # 와일드 카드 %와 _의 구분

 

           '%'는 위치에 따라서 글자의 갯수를 상관하지 않고, 관련된 데이터를 모두 뽑아오게 되는것이고

          

          반면에 '_'는 사용한 갯수가 곧 글자수로 정확한 글자수에 맞는 데이터를 뽑아오게 됩니다.

 

 

           ++  %나 _를 문자속에 넣고 싶으면   escape [ \ ]를 활용해서 문자로 인식하게 만들 수 있습니다.

 

 

   # 'LIKE' 연산자의 주의사항.

 

        1. 대소문자 구분.

                   - 대부분의 SQL DB 시스템에서 'LIKE'연산자는 기본적으로 대소문자를 구분하지 않습니다.

                    - 단, 특정 DB에서는 대소문자를 구분하도록 설정할 수 있습니다.

 

        2. 성능 문제.

                  - 'LIKE'연산자는 특히 '%' 와일드카드가 패턴의 시작 부분에 있을 때 인덱스를 사용하지 못해

                     쿼리 성능의 저하를 일으킬 수 있습니다.  

                 - 큰 데이터셋에서는 주의가 필요합니다.

 

        3. 유니코드 및 다국어 지원.

                - 'LIKE' 연산자는 유니코드 문자열을 지원하며, 다국어 문자열 비교에도 사용 가능합니다.

                   단! DB 설정에 따라 비교 방식이 다를 수 있습니다.

 

 


∇ LIKE 심화 설명.

 

        ∇ 성능 최적화.

 

          ∇ -1 인덱스 사용   

 

               1. LIKE 연산자를 사용할 때, 특히 패턴이 접두사(prefix)로 시작하면 인덱스를 사용 가능.

                        - LIKE abc%는 인덱스를 사용가능해서 빠른 검색이 가능

 

               2. 패턴이 접미사(suffix)로 시작하면 인덱스를 사용할 수 없음.

                     -  - %abc는 테이블의 모든 행을 스캔해야 하므로 성능이 저하된다.

 

          ∇ -2 정규 표현식  사용

                      - 일부 DB에서는 LIKE 대신 정규 표현식을 사용 가능.

                         - 정규 표현식은 더 복잡한 패턴 매칭을 지원.

 

                  

       

             ∇ -2 캐시 및 파티셔닝

                      - 빈번한 패턴 검색이 필요한 경우, 결과를 캐싱하거나 테이블을 파티셔닝하여 성능을 향상.

                    

728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.