여기에있는 설명서는 매우 명확하지 않으며 몇 가지 샘플 SQL 문을 제공하지도 않습니다. http://dev.mysql.com/doc/refman/5.6/en/column-indexes.html.
질문을 rephrase하는 또 다른 방법은 다음과 같습니다.
우리는 여러 열이있는 색인을 가질 수 있습니다. 이러한 열의 인덱스가 다른 유형의 경우 어떨까요? 첫 번째 열이 공간적이라고 말하면 다른 하나는 전체 성 텍스트 검색 등입니다. 우리는 MySQL에서 그렇게 할 수 있습니까? (보너스 : 우리는 몽다드에서 그렇게 할 수 있습니다.
당신이 myisam 테이블을 가지고 있다고 가정합니다
포인트가 포함 된 Latlong 열이 있습니다.
비즈니스 "비즈니스"에 단어가 포함 된 전체 텍스트 열이 있습니다.
Latlong 먼저 쿼리를 원한 다음 전체 텍스트 열을 기반으로 필터링하려는 일치하는 Latlong 내에서 쿼리하려고합니다.
여러 개의 열 색인이 필요하다고 가정합니다.
그러나 SQL 명령은 무엇입니까?
알고 계시므로 MySQL은 가능한 경우 FullTextSearch 인덱스를 항상 사용합니다.
이 쿼리 :
SELECT BusinessID as ID ,
111151.29341326*SQRT(pow(-6.186751-X(LatLong),2)+pow(106.772835-Y(LatLong),2)*0.98838574205337) AS Distance from tableauxiliary
use index (LatLong_2)
WHERE
MBRContains(
GeomFromText (
'MULTIPOINT(-6.1934985598076 106.76604791159,-6.1800034401924 106.77962208841)'
),
Latlong)=1
AND Prominent >15
AND MATCH FullTextSearch AGAINST ('sea*' IN BOOLEAN MODE)
ORDER BY
Distance
LIMIT
0, 45
이 쿼리는 오랜 시간이 걸립니다.
SELECT BusinessID as ID ,
111151.29341326*SQRT(pow(-6.186751-X(LatLong),2)+pow(106.772835-Y(LatLong),2)*0.98838574205337) AS Distance from tableauxiliary
use index (LatLong_2)
WHERE
MBRContains(
GeomFromText (
'MULTIPOINT(-6.1934985598076 106.76604791159,-6.1800034401924 106.77962208841)'
),
Latlong)=1
AND Prominent >15
AND MATCH FullTextSearch AGAINST ('sea*' IN BOOLEAN MODE)
ORDER BY
Distance
LIMIT
0, 45
는 MySQL이 Spatial 쿼리 인 Latlong_2 인덱스를 대신 Latlong_2 인덱스를 사용하도록 말하기 때문에
가 더 빠릅니다.
여러 개의 열 색인을 원합니다. Latlong_2 및 FullTextSearch. 그들은 다른 유형에서 벗어났습니다. Latlong_2는 공간적이며 FullTextSearch는 전체 텍스트 검색 색인입니다. 어떤 SQL 명령을 실행해야합니까?
관련 자료
- r - 조건에 따라 mutate (across)와 case_when을 결합하여 여러 열을 0으로 채 웁니다
- r : ifelse () 여러 열에 모든 ()과 함께 사용됨
- sql - 여러 열의 최소 날짜 시간으로 임시 테이블 업데이트
- r - 조건이 충족되면 여러 열의 셀 값을 열의 값으로 바꿉니다
- python 3.x - Pandas의 여러 열과 날짜 비교
- dataframe - 여러 헤더 파일을 읽고 R에서 여러 열을 녹입니다
- r - 여러 NA 열을 0으로 업데이트
- angular - PrimeNG를 사용하여 여러 열을 정렬하는 방법
- numpy - Pandas의 여러 열에 apply () 함수를 적용 하시겠습니까?
- microsoft excel - 한 번에 여러 열을 연결하는 방법은 무엇입니까?
- python - 여러 열을 여러 열로 곱하기
- dataframe - df1의 여러 열 요소를 R의 array1 값과 일치시키는 방법은 무엇입니까?
- analytics - Python의 조건을 사용하여 여러 데이터 프레임 열 그룹화 및 비교
- R의 행렬에서 여러 열의 여러 문자열 분할
- python - 셀의 여러 값을 열로 변환
- dplyr - tidyverse를 사용하여 R의 여러 열에 대한 입력으로 여러 열에 동일한 함수 적용
- c# - AspNetUserRole 테이블은 NET을 사용자 정의한 후 데이터베이스에 여러 열을 생성합니다
- stringr - 여러 데이터 세트 R의 열 이름 바꾸기
- awk - Linux의 여러 폴더에있는 파일에서 특정 열로 새 파일을 만드는 방법은 무엇입니까?
- python - 여러 팬더 열을 문자열 부울에서 부울로 변환하는 방법은 무엇입니까?