일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 자바 버전 확인
- ndk 오류
- jdk 상세버전 확인
- centos java_home
- gitignore not working
- 10진수
- arm-linux-androideabi
- 광고
- foreign_key
- 웹뷰 디버깅
- centos java
- useGeneratedKeys
- sh shutdown.sh 오류
- 이벤트 스케쥴러
- 인덱스 여러개
- MySQL
- centos 환경변수
- 키보드 사라짐
- adjustNothig
- 변환기
- centos jre_home
- 리눅스
- /usr/lib/jvm
- 안드로이드
- chrome://inspect
- 웹뷰 원격
- web view
- return 1
- event scheduler
- gitignore 오류
- Today
- Total
개발자가 되고 싶은 1人
mysql 원하는 인덱스 사용하기 본문
mysql에서 데이터가 별로 없을 경우에는 인덱스가 필요 없을 정도로 늦은 속도의 쿼리를 체감하지 못하지만
데이터량이 점점 많아질수록 인덱스를 사용함으로써 쿼리 속도를 개선할 수 있다.
CREATE TABLE `test_db`.`student_test`
(
SEQ int NOT NULL AUTO_INCREMENT COMMENT '시퀀스',
name varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '이름',
grade int(11) NOT NULL COMMENT '학년',
group int(11) NOT NULL COMMENT '반',
age int(11) NOT NULL COMMENT '나이',
`ECG1` float COMMENT '심전도 1',
`ECG2` float COMMENT '심전도 2',
PRIMARY KEY (`SEQ`),
INDEX `index_grade` (`grade`),
INDEX `index_grade_group` (`grade`, `group`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=Dynamic AUTO_INCREMENT=1;
위와 같이 인덱스가 2개 이상 일 경우 쿼리에서 원하는 인덱스를 사용할 수 있다.
아래 그림은 실행계획을 돌려보니 2개의 인덱스가 있고 아무런 세팅을 하지 않는 경우 index_*** 의 인덱스를 타고 있는 상황이다.
1) SELECT *
FROM student_test use index (index_grade)
where grade = '3';
2) SELECT *
FROM student_test use index (index_grade_group)
where grade = '3'
and group = '12';
'프로그래밍 > Database' 카테고리의 다른 글
mysql event schedule (0) | 2021.12.20 |
---|---|
mysql Database 및 Table dump, 복원 (0) | 2021.11.11 |
mysql 외래키 무시하고 데이터 삭제하기 (0) | 2021.06.18 |
mysql 모니터링 (0) | 2020.12.13 |
윈도우에서 mariadb 서비스 종료 및 시작 (0) | 2020.06.05 |