my sql 색인 이 정렬 에 미 친 영향 사례 분석
색인 은 검색 속 도 를 높 일 뿐만 아니 라 정렬 속도 도 추가 할 수 있 습 니 다.orderby 뒤의 문장 에 색인 을 사용 하면 정렬 속 도 를 높 일 수 있 습 니 다.
테스트
1.테스트 표 만 들 기:t15 표
CREATE TABLE `t15` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`cat_id` int(10) unsigned NOT NULL DEFAULT '0',
`price` decimal(10,2) NOT NULL DEFAULT '0.00',
`name` char(5) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8
2.1W 줄 데이터 삽입
<?php
$db = 'test';
$conn = mysql_connect('localhost','root','1234');
mysql_query('use ' . $db , $conn);
mysql_query('set names utf8' , $conn);
for($i=1;$i<=10000;$i++) {
$cat_id = rand(1,10);
$price = rand(1,50000);
$name = substr(str_shuffle('abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ234565789'),0,5);
$sql = sprintf("insert into t15 values (%d,%d,%f,'%s')",$i,$cat_id,$price,$name);
mysql_query($sql , $conn);
}
3.백화점 사 이 트 는 보통 특정한 분류 에 따라 가격 상의 순 서 를 매 긴 다.우 리 는 같은 sql 문 구 를 모 의 해서 집행 한다.
select name,cat_id,price from t15 where cat_id=1 order by price;
(1)우선 색인 을 추가 하지 않 습 니 다.조회 분석 을 통 해 알 수 있 듯 이 Extra 에서
Using filesort
까지 사 용 된 것 은 파일 정렬 이 필요 하 다 는 뜻 이다.(2)여기(catid,price)열 색인 추가
alter table t15 add index cp(cat_id,price);
이 검색 분석 에서 Extra 는 Using filesort 를 사용 하지 않 았 습 니 다.색인 을 추가 하고 조회 하 는 sql 은 외부 정렬 에 사용 되 지 않 고 색인 정렬 에 사용 되 었 습 니 다.색인 자체 가 정렬 되 기 때문에 추가 orderby 가 필요 하지 않 습 니 다.4.관측 조회 시간
Query_ID 1 은 색인 이 추가 되 지 않 은 문장 입 니 다.QueryID 가 3 인 것 은 색인 을 추가 한 후에 실 행 된 문구 입 니 다.한 실행 시간 은 0.013 초 이 고 한 실행 시간 은 0.005 초 입 니 다.색인 을 추가 하 는 것 이 빠 를 것 입 니 다.구체 적 인 속도 가 어디 에 있 는 지 알 아 보 겠 습 니 다.
Query_ID 가 1 인 sql 문 구 는 상세 한 시간 소모 그림 을 실행 합 니 다.
Query_ID 가 3 인 sql 문 구 는 상세 한 시간 소모 그림 을 실행 합 니 다.
분명 해,QueryID1 의
Sorting result
은 0.012 초,QueryID2 의 Sorting result
은 0.00004 초 만 걸 렸 고 이 Sorting result
은 정렬 에 걸 렸 다.결론:색인 은 정렬 속도 에 어느 정도 영향 을 미 치기 때문에 실제 개발 에 서 는 실제 상황 과 결합 하여 색인 을 만 들 고 가능 한 한 정렬 필드 를 색인 에 추가 해 야 한다.
더 많은 MySQL 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 MySQL 데이터베이스 계획 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MySQL에서 JSON 인덱싱 - aarondfrancis사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 말하지만 완전히 정확하지는 않습니다. MySQL로 JSON 열을 인덱싱하는 것은 완전히 가능합니다! 사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.