반응형
3 개 열에 FULLTEXT INDEX를 추가 할 때 3 개 열에 1 개의 단일 인덱스를 추가합니까, 아니면 3 개의 개별 인덱스를 추가합니까?
나는 현재 다음과 같이 FULLTEXT를 사용하고 있기 때문에 이것을 묻습니다.
ALTER TABLE myTable ADD FULLTEXT all3colsIndex (col1,col2,col3);
SELECT * FROM myTable WHERE MATCH (col1, col2, col3) AGAINST ('word');
사용자가 검색에서 열 중 하나를 제거 할 수있는 사용자 옵션을 검색 인터페이스에 추가했습니다. 따라서 인덱스를 잃지 않고이 작업을 수행 할 수 있습니다. 여기서는 3 개 열 중 2 개만 사용합니다.
ALTER TABLE myTable ADD FULLTEXT all3colsIndex (col1,col2,col3);
If (UserOptionRemoveCol == "selected") {
SELECT * FROM myTable WHERE MATCH (col1, col2) AGAINST ('word');
} else {
SELECT * FROM myTable WHERE MATCH (col1, col2, col3) AGAINST ('word');
}
아니면 두 열과 세 열에 새 FULLTEXT 인덱스를 만들어야합니까?
ALTER TABLE myTable ADD FULLTEXT all3colsIndex (col1,col2,col3);
ALTER TABLE myTable ADD FULLTEXT 2colsIndex (col1,col2);
해결 방법
CREATE FULLTEXT INDEX ON table_name (column_name1 [...], column_name2 [...]) ...
이 정보가 주어지면 3 개 열에 걸쳐 단일 색인 을 생성한다고 가정합니다. 또한 복합 인덱스와 관련하여 왼쪽에서 오른쪽 규칙에 따라 작동한다고 가정합니다 (다음 문에 대한 실행 계획을 확인하여이를 확인합니다). 따라서 (col1, col2, col3)
에 대한 복합 색인을 사용하려면 순서대로 선택해야합니다 ( SELECT col1, col2 ...
). col2
를 호출하면 색인을 사용하지 않습니다.
참조 페이지 https://stackoverflow.com/questions/12361804
반응형
'MySql' 카테고리의 다른 글
MySQL Zend Framework로 MySQL 소켓을 통해 연결 (0) | 2021.01.30 |
---|---|
MySQL MAX 값에 SQL 삽입 (0) | 2021.01.30 |
MySQL mysql-키워드를 열 이름으로 사용할 때 오류 1064 (42000) (0) | 2021.01.30 |
MySQL C를 사용하여 데이터베이스에 액세스 (0) | 2021.01.30 |
MySQL mySQL 형식 숫자 출력, 천 단위 구분 기호 (0) | 2021.01.30 |
댓글