Background Image

FORUM

?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

안녕하세요~

 

MySQL에서 큐브리드 포팅하면서 궁금즘이 생겨서 질문드립니다.

 

SELECT 시, 필드 값의 대/소문자 구분 없이 검색하는 방법으로 아래와 같은 쿼리가 적당할까요?

 

예시 테이블 생성 및 샘플 데이터)

 

CREATE TABLE "entries"(
"uid" integer AUTO_INCREMENT,
"entry" VARCHAR(255) NOT NULL,
"meaning" VARCHAR(255) NOT NULL,
PRIMARY KEY("uid")
);
 

INSERT INTO "entries" ("entry", "meaning") values ('japan', '옻칠');

INSERT INTO "entries" ("entry", "meaning") values ('Japan', '일본');

 

질의1)

select * from "entries" where "entry" = 'japan';

 

/*

질의1의 결과) 아래 1건만 검색 됨

 japan, 옻칠

*/

 

질의2) 대소문자 관계 없이 검색하기 위해 사용해 본 쿼리

select * from "entries" where lcase("entry") = lcase('japan');

 

 

질의2와 같이 필드 값과 입력 값을 모두 소문자로 맞춰 검색하면 2개의 japan 레코드가 나옵니다만...

 

이것이 성능상으로 문제가 있지 않을까 싶어서, 문의드립니다.

 

성능 저하가 우려가 있다면, 혹시 다른 방법이 있을까요?

 

  • ?
    남재우 2011.04.02 04:05

    안녕하세요.

    현재 CUBRID는 대소문자를 구분하고 있으므로 일반적인 방법으로는 어렵습니다.

    말씀하신 방법으로 가능하나, 문제는 lcase(entry) 와 같이 필드에 함수를 사용시 인덱스사용이 되지 않아 성능이 떨어질 가능성이 높아진다는 것이 문제입니다.

    아마도 아시겠지만 할 수 있는 방법은 2가지가 있습니다.

    1. 입력시 강제 소문자로 변환하여 소문자로 저장시킵니다. 그런후 비교시 where entry = lcase(비교값) 형태로 할 수 있습니다. 단점은 결과가 소문자로 나온다는 것입니다.

    2. 필드를 하나 추가합니다. entry 에는 원래값을 넣고 entry_lcase 에는 소문자로 값을 입력합니다. 그런후 비교는 where entry_lcase = lcase(비교값) 의 형태로 질의하고 select 절에서는 entry 값을 봅니다. 단점은 필드가 하나 늘어남에 따라 응용에서 질의 사용에 신경써야 하고 역시 데이터량의 증가로 이어질 수 있습니다.

    현재로써는 이정도 방법이 좋을 것 같습니다.

  • ?
    차오이 2011.04.02 04:46

    일단.. 검색용 필드를 따로 추가해 활용하는 것이 좋겠네요.. 힌트 감사합니다 ^^


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 48
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
1013 SpingFrameWork에서 Mybatis 사용시 Merge문 사용과 관련된 에러 문의드립니다. 1 file 고대장 2021.10.13 791
1012 Spatial Extensions 지원하나요? 2 온니발란스 2010.02.09 14299
1011 SYS_TIME 출력 시 문의사항 1 오렌지 2021.07.01 147
1010 SYSTEM PARAMETERS 확인방법이 있나요? 1 봉보로봉봉 2017.07.29 453
1009 SUBQUERY 튜닝 관련 문의 6 secret yscoma 2017.03.30 20
1008 SSL 혹은 SSH와 같이 암호화 커넥션을 지원하나요? 1 아장아장 2010.09.03 12990
1007 SQL질문 1 마이나스 2010.11.05 7143
1006 SQL작성시 버벅거림 문의드립니다. 1 file 용이닷 2015.09.09 5816
1005 SQL문에 대해 질문 드립니다.. 5 ohgeumjin 2020.05.29 117
1004 SQL문 문의 2 아라천 2015.12.16 5155
1003 SQLGate에서 서버오류 발생합니다 1 file 두듀두듀듀 2022.10.09 105
1002 SQLGate 데이터 내보내기 오류 1 써늬니 2022.10.25 167
1001 SQLGate for CUBRID (CUBRID v9.3 and later) 폐쇄망 사용법? 1 임소식 2024.01.18 78
1000 SQLGate Developer 업데이트 후 오류 1 문태환 2021.11.15 169
999 SQL 행, 10분이상 지연 시 해제 및 설정 방법 문의 드립니다 2 kdman 2023.12.06 108
998 SQL 쿼리 속도문제 1 칭칭이 2013.10.17 10314
997 SQL 질문 1 삼월토끼 2014.05.12 6957
996 SQL 인라인뷰 응답속도 개선 문의 6 knight 2013.12.07 13270
995 SQL 에러 질문 1 카르마 2010.10.16 9958
Board Pagination Prev 1 ... 145 146 147 148 149 150 151 152 153 154 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales