>  기사  >  데이터 베이스  >  mysql에서 인덱스를 어떻게 사용하나요?

mysql에서 인덱스를 어떻게 사용하나요?

(*-*)浩
(*-*)浩원래의
2019-05-08 11:37:299449검색

정렬 작업 중에 색인을 사용하여 정렬할 수 있으면 정렬 속도를 크게 향상시킬 수 있습니다. 색인을 정렬에 사용하려면 다음 두 가지 사항을 충족해야 합니다.

1. ORDER BY 절 뒤의 열 순서는 결합된 인덱스의 열 순서와 일치해야 하며, 모든 정렬 열의 정렬 방향(정방향/역순)이 일치해야 합니다.

2. 값은 인덱스 열에 포함되어야 하며 포함 인덱스를 만족합니다.

추천 과정: MySQL 튜토리얼.

mysql에서 인덱스를 어떻게 사용하나요?

예제를 통해 분석해보겠습니다

user_test 테이블에 결합 인덱스 생성user_test表上创建一个组合索引

ALTER TABLE user_test ADD INDEX index_user(user_name , city , age);

可以使用到索引排序的案例

SELECT user_name, city, age FROM user_test ORDER BY user_name;
SELECT user_name, city, age FROM user_test ORDER BY user_name, city;
SELECT user_name, city, age FROM user_test ORDER BY user_name DESC, city DESC;
SELECT user_name, city, age FROM user_test WHERE user_name = 'feinik' ORDER BY city;

注:第4条sql语句比较特殊一点,如果where查询条件为索引列的第一列,且为常量条件,那么也可以使用到索引。

无法使用索引排序的案例

sex不在索引列中

SELECT user_name, city, age FROM user_test ORDER BY user_name, sex;

排序列的方向不一致

SELECT user_name, city, age FROM user_test ORDER BY user_name ASC, city DESC;

所要查询的字段列sex没有包含在索引列中

SELECT user_name, city, age, sex FROM user_test ORDER BY user_name;

where查询条件后的user_name

SELECT user_name, city, age FROM user_test WHERE user_name LIKE 'feinik%' ORDER BY city;

인덱스 정렬을 사용할 수 있는 경우🎜🎜rrreee🎜참고: 4조 sql 이 명령문은 조금 특별합니다. where 쿼리 조건이 인덱스 열의 첫 번째 열이고 상수 조건인 경우 인덱스도 사용할 수 있습니다. 🎜🎜🎜인덱스 정렬을 사용할 수 없는 경우🎜🎜🎜sex가 인덱스 열에 없습니다🎜rrreee🎜정렬 열의 방향이 일치하지 않습니다🎜rrreee🎜쿼리할 필드 열 sex가 인덱스 열에 포함되지 않습니다🎜 rrreee🎜user_name 뒤의 코드는 범위 쿼리이므로 인덱스의 다른 열을 사용할 수 없습니다🎜🎜rrreee

위 내용은 mysql에서 인덱스를 어떻게 사용하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.