저는 DBA 사람이 아니므로 몇 가지 질문을하고 싶습니다.
내 테이블에는 10 개의 열이있는 4,800 만 개의 행이 있습니다. 이 열 중 7 개에서 다음과 같은 쿼리를 실행해야합니다.
select * from `table1` WHERE `Flag` = '1' - 10 millions of rows (takes like 2 seconds) - on Flag column i have INDEX
select * from table WHERE `name` LIKE '%John%' - 10k results (takes like 10H) on `name column i have INDEX
을 (를) 사용하는 데 문제가 있습니다. LIKE
2 초도 기다리지 않고 결과를 정말 빨리 얻어야합니다. 제 경우에는 10 시간이 걸립니다.
여기 누군가가 저를 도와 주길 바랍니다. 감사합니다.
Mysql은 첫 번째 와일드 카드 (%) 전에 LIKE에서 인덱스를 사용합니다. 따라서 와일드 카드가 "seach-string"의 첫 번째 기호이면 색인이 사용되지 않습니다.
http://dev.mysql.com/doc/refman/5.1/en/mysql-indexes.html
LIKE 'John%'
-빠르다 LIKE '%John%'
-느리다
전체 텍스트 검색을 사용해야한다고 생각합니다
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다