저는 데이터베이스 프로그래밍에 익숙하지 않고 인덱스의 부정적인 영향이 무엇인지 궁금합니다. 내가 이해하는 한, 인덱스는 데이터베이스에서 특정 값 (예 : SELECT)을 검색해야하는 작업의 속도를 높입니다.
이 예를 고려하십시오.
user_name
열에 인덱스가있는 Example
테이블의 경우 작업은 다음과 같습니다.
SELECT TestField FROM Example WHERE user_name=XXXX
인덱스의 결과로 더 빨라질 것입니다.
내 질문은 : 인덱스 사용의 단점은 무엇입니까? 인덱스가 우리에게 프로 (성능 향상)를 제공한다면 왜 기본값으로 설정되지 않습니까?
해결 방법
색인에 대한 책을 채울 수는 있지만 여기서는 색인을 만들 때 고려해야 할 몇 가지 사항이 있습니다.
(대부분) 선택 속도를 높이는 반면 데이터베이스 엔진이 데이터 만 쓸 필요가없고 인덱스도 쓸 필요가 없기 때문에 삽입, 업데이트 및 삭제 속도가 느려집니다. An index need space on hard disk (and much more important) in RAM. An index that can not be held in RAM is pretty useless. 몇 개의 다른 값만있는 열의 인덱스는 많은 행을 정렬 할 수 없기 때문에 선택 속도를 높이 지 않습니다 (예 : 일반적으로 남성, 여성의 두 가지 값만있는 "gender"열).
예를 들어 MySQL을 사용하는 경우 엔진이 select 앞에 "explain"을 추가하여 인덱스를 사용하는지 확인할 수 있습니다. 위의 예에서는 EXPLAIN SELECT TestField FROM Example WHERE username = XXXX
참조 페이지 https://stackoverflow.com/questions/29842622
'MySql' 카테고리의 다른 글
MySQL 특정 조건에서 INSERT를 방지하는 MySQL 트리거 (0) | 2020.11.22 |
---|---|
MySQL 트리거 / 저장 프로 시저에서 쉘 스크립트 / 명령 실행 (0) | 2020.11.22 |
MySQL T-SQL을 MySQL로 변환 (0) | 2020.11.22 |
MySQL ERD 다이어그램의 상속 관계 (0) | 2020.11.21 |
MySQL Sequelize로 MySQL에 연결할 수 없습니다. (0) | 2020.11.21 |
댓글