나는 80 백만 가지 레코드가있는 테이블을 가지고 있습니다. 테이블의 구조 :검색을 위해 LIKE를 사용하는 대형 MySQL 테이블의 분할
- ID - 자동 증가,
- 코드 - 5 100 자까지 영숫자 코드,
- 다른 분야.
가장 사용되는 쿼리는 쿼리의 숫자뿐만 아니라 recodrs 카운트로 성장하고
SELECT * FROM table
WHERE code LIKE '%{user-defined-value}%'
입니다. 아주 빨리 성능 문제가 발생할 것입니다.
파트에서 테이블을 분할 할 방법이 있습니까? 아니면 테이블을 최적화하는 다른 방법이 있을까요?
실제로 "%"를 앞당기는 문제를 해결하기 위해 "code_inverted"열을 이미 추가했습니다. 제안한대로 코드 길이만큼 테이블을 분할하려고합니다. – Leksat
니스. code_inverted는 후행 %가없는 경우에만 앞의 %를 사용하여 문제를 해결한다는 점에 유의하십시오 (이는 새 선행 %가됩니다). :) – Ami