mysql 한글 인덱싱 관련 질문 드립니다.

김제연   
   조회 3054   추천 0    

 어떤 테이블이 있습니다 

A필드 

[광폭]NX 하이그로시 신발장/신발정리대/현관신발장/정리함/수납장/신발수납장/다용도수납장/틈새수납장

B필드

제품종류:옵션01. NX 소형신발장(백설)-1개


이렇게 수천 수만개가  저장이 되어있고 .. 

나중에 어떤 값 A,B가 들어오면.. 둘다 만족하는(같으면) select 하는 프로그램입니다.

근데  A필드나 B필드가 너무 긴것 같아서 그런데 인덱스 그대로 한글로 사용해도 될까요?


아니면 생각해본 방법이 A필드를 MD5 같은 hash 알고리즘으로 .. hash 필드를 만들어서 

hash 로 비교 하는게 좋을지.. 

한글로 해도 딱히 단점이 없으면 한글로 쓸까 해서요 .. 

한글로 인덱스 걸어서 하는것과 따로 헤쉬 필드를 만들어서 비교 하는것... 어떤게 좋을까요?

아니면.. 더 좋은 방법이 있으면 알려 주셔도 됩니다... 

좋은 방법 알고 계시면 지도 부탁 드립니다.

짧은글 일수록 신중하게.
잘하자 2019-06
반드시 한글이 조건값으로 들어와야하는경우가 아니라면
데이터를 코드화 하시고 인덱스 권장합니다

그래야 성능도 좋아지고  데이터가 깨끗해집니다
김상혁2 2019-06
Like 검색의 경우 키워드% 검색은 인덱싱이 적용되나 %키워드% 형식으로는 데이터가 많으면 아주 느려집니다..
광폭 , 하이그로시, 신발장 , 신발정리대와 같은 키워드를 별도의 테이블에 넣고 idx 처리해서
실제 A필드,B필드를 다루는 테이블의 idx와 매칭되는 테이블을 하나 더 생성하셔서 나중에 검색시에 키워드 테이블에서 매칭시킨후 인덱싱 테이블에서 매칭시켜서 쿼리해주는게 좋습니다
A필드 본문이 정확하게 똑같은 내용으로 필드검색이 된다면야 별도 인덱싱 테이블 설계를 하실필요는 없으나,,혹여 키워드로 검색을 하셔야한다면 별도의 키워드별 인덱싱을 해주시는게 성능상의 이점이 있습니다..
김제연 2019-06
아 .. 정확한 것만 조회하면 되서 .. like 쿼리는 필요가 없습니다..
그냥 = 쿼리를 사용하는 필드는 인덱싱이 필요 없는건가요?
초보라서 .. ㅜㅜ
그럼.. 그냥 단순하게 .. 인덱싱 없이 가도 되겠네요..
     
잘하자 2019-06
인덱스 있어아합니다
성능은 불필요한 disk io를 줄여야 잘 나옵니다
인덱스를 않만들면 full table scan합니다
     
김상혁2 2019-06
Equal 쿼리를 수행하신다고해도 정렬이 필요한 데이터는 '반드시' 인덱싱이 필요합니다

저장된 데이터와 검색하시는 데이터가 정확하게 일치하신다면 기존 컬럼 = '검색어' 로 매칭시키면 될듯합니다..

오히려 hash처리를해서 데이터를 저장하고 검색시에 입력한 값을 다시 hash처리해서 비교하는것은 불필요해보입니다


QnA
제목Page 4808/5710
2014-05   5156364   정은준1
2015-12   1690708   백메가
2020-01   3047   지옥성녀은비
2020-10   3047   검은콩
2021-10   3047   미친감자
2018-11   3046   반성만
2019-06   3046   회상2
2019-01   3046   HEUo김용민
2020-12   3046   포스타
2021-10   3046   boon6007
2022-12   3045   lenux8
2022-10   3045   소음기
2020-04   3045   김영기
2019-08   3045   나파이강승훈
2019-01   3045   진돌슈빈
2020-04   3045   삐돌이슬픔이
2021-07   3045   나의정체는
2019-03   3045   전진
2021-01   3045   미도리
2019-03   3045   2CPU최주희
2017-07   3044   주영진영아빠
2017-06   3044   blacknut