MariaDB 인덱스 비교
저는 HeidiSQL을 사용하고 있으며, 특히 1,249,848개의 행으로 채워져 있기 때문에 쿼리가 눈에 띄게 오래 실행되는 테이블이 하나 있기 때문에 인덱스를 조사하기 시작했습니다.(합리적인 예외를 제외하고) 거의 모든 테이블에는 기본 키가 있습니다. 이 키는 매우 간단합니다.저는 소크라테스의 SQL 인덱스 비디오를 보게 되었는데, 이는 SQL 경험이 제한된 사람들을 위한 환상적인 시계입니다. 그러나 불행히도 그녀는 어떤 유형의 인덱스를 사용해야 하는지 명확히 하지 못했습니다.
HeyidiSQL은 다음을 가능하게 합니다.primary
,key
,unique
,fulltext
그리고.spatial
인덱스, 적어도 MariaDB와 저는 지난 몇 년 동안 MariaDB만을 사용했습니다.몇 개의 인덱스를 추가할 테이블은 다음을 위한 것입니다.date
그리고.engine
내 스파이더 로그 테이블의 열.사용합니다DATETIME
그리고.VARCHAR()
각 열에 대해 어떤 유형의 인덱스를 사용할지 알고 있지만 인덱스를 제안과 비교하면 매우 감사할 것입니다.설명서에서는 인덱스가 수행하는 작업에 대해 설명합니다. 그러나 인덱스가 서로 비교하여 가장 적합한 데이터 세트에 대해서는 설명하지 않습니다.
각 테이블에는 하나의 키만 있을 수 있으며 항상 하나의 키를 정의해야 합니다.테이블 데이터(디스크)는 기본 키 검색이 매우 빠른 방식으로 저장됩니다.(클러스터된 인덱스라고 함)
대부분의 응용 프로그램에서 기본 키는 대리 키입니다.
그러나 일련 번호, MAC 주소, 사회 보험 번호 등 데이터에서 이미 발생한 고유 식별자인 고유 기본 키를 선택할 수도 있습니다.
기본 키를 검색하는 것이 데이터를 검색하는 가장 빠른 방법이지만 하나만 있을 수 있습니다.
검색 속도를 높이기 위해 인덱싱에 대해 말할 때 사람들은 일반적으로 단순함을 의미합니다.KEY
s, "보조 키"라고도 합니다.
많은 사용 사례에서 둘 이상의 속성을 포함하는 "포함 인덱스"를 만드는 것이 유용합니다.
예.KEY(lastname, surname)
쿼리 속도 향상WHERE lastname="Anderson" AND firstname="Thomas"
게다가WHERE lastname="Anderson"
하지만 아닙니다. WHERE firstname="Thomas"
응용 프로그램이 가장 많이 실행되는 쿼리를 알고 다음과 같은 인덱스를 설계하는 것이 매우 중요합니다.
모든 쿼리가 인덱스를 효과적으로 사용할 수 있는 것은 아니며, 모든 인덱스가 유용한 것은 아니며, 쓰기 부하가 높은 경우에는 여러 개의 쿼리보다 몇 개의 좋은 쿼리가 더 좋습니다.
인덱스는 쓰기 비용이 많이 듭니다. 행의 모든 업데이트는 각 개별 인덱스에 대한 업데이트를 의미합니다!
다른 유형은 특수합니다.
unique
키를 사용하면 단일 행만 속성에 대해 동일한 값을 유지할 수 있습니다.일반적으로 "계정의 전자 메일 주소는 고유해야 함"/"전자 메일당 하나의 계정만"과 같은 비즈니스 규칙을 적용하는 데 사용됩니다.
fulltext
에만 적용할 수 있습니다.TEXT
열이나 데이터베이스에 내장된 미니 검색 엔진입니다.사용할 수 있습니다.AND
그리고.OR
조건, 특수 기능이 포함된 와일드카드MATCH
텍스트 검색을 위한 연산자입니다.
좌표계/기하학용이며 다른 용도로는 사용할 수 없습니다.
언급URL : https://stackoverflow.com/questions/59291952/comparison-of-mariadb-indexes
'programing' 카테고리의 다른 글
결과 집합 - 커서 : rs.next() 시간이 많이 걸립니다. (0) | 2023.07.26 |
---|---|
MySQL보다 Oracle을 선택해야 하는 경우 (0) | 2023.07.26 |
zip(*[iter(s)]*n)은 Python에서 어떻게 작동합니까? (0) | 2023.07.26 |
Angular 빌드 프로세스를 가속화하는 방법 (0) | 2023.07.26 |
parseInt vs sunaryplus, 어떤 것을 사용해야 합니까? (0) | 2023.07.26 |