my sql 색인 이 정렬 에 미 친 영향 사례 분석

3026 단어 mysql인덱스정렬
본 고의 실례 는 mysql 인덱스 가 정렬 에 미 치 는 영향 을 설명 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
색인 은 검색 속 도 를 높 일 뿐만 아니 라 정렬 속도 도 추가 할 수 있 습 니 다.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 데이터베이스 계획 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기