db설계 랑 쿼리문 질문..!!
본문
십만이상 고객이 있고 고객별로 100개 이상 결제 건이 등록이 되어야 합니다.
고객 x 결제건 = 천만
이렇게 될텐데 mysql myisam 으로 문제가 없나요?
현재 십만개를 등록하니 벌써 30메가나 됩니다.
그리고 아래와 같이 테이블이 만들어져 있을 때 통합검색이 되어야 하는데 셀렉팅을 어떻게 해야할 지 모르겠습니다.
create table 테이블 (
no int(11) not null auto_increment,
date date not null,
hp varchar(13) not null,
memo varchar(255) not null,
primary key(no)
);
select * from 테이블 where replace(hp,'-','') like '%7142%' or memo like '%7142%' order by date desc;
이렇게 검색하니 0.5초나 나오는데... 겨우 십만개인데 이정도면 천만이면 50초 걸리는건가요?ㅜㅜㅜㅜ
인덱스를 이래저래 걸어봐도 마찬가지인 건 인덱스가 안걸린다는 건데...
어떻게 해야할 까요??ㅜㅜ
답변 2
like '%7142%' 이 조건은 인덱스를 탈 수 없는 구조 입니다.
해당 테이블 해당 필드에 fulltext 를 거세요
그리고 가급적이면 중복된 입력을 막기 위해 innoDB 로 가시는걸 추천드리구요.
SELECT * FROM `테이블` WHERE MATCH(`memo`) AGAINST('abcd') IN BOOLEAN MODE) 로 해보세요
답변을 작성하시기 전에 로그인 해주세요.