>데이터 베이스 >MySQL 튜토리얼 >MySQL 주문별 명령문 최적화 코드에 대한 자세한 설명

MySQL 주문별 명령문 최적화 코드에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-06-28 14:06:511873검색

Order by 문은 정렬을 위해 자주 사용됩니다. 이제 Order by와 최적화된 정렬에 대해 설명하겠습니다.

MySQL Order By 키워드가 사용됩니다. 기록의 데이터를 분류합니다.
MySQL Order By 키워드는 키워드에 따라 분류됩니다.
ORDER BY 키워드는 레코드에 있는 데이터를 분류하는 데 사용됩니다.

SELECT column_name(s) 
FROM table_name 
ORDER BY column_name

Example

SQL 생성 코드:

CREATE TABLE IF NOT EXISTS mysql_order_by_test (
  uid int(10) NOT NULL AUTO_INCREMENT,
  name char(80) NOT NULL,
  sex tinyint(1) NOT NULL,
  KEY uid (uid)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

INSERT INTO mysql_order_by_test (uid, name, sex) VALUES(1, 'www.jb51.net', 1);
INSERT INTO mysql_order_by_test (uid, name, sex) VALUES(2, '李四', 2);
INSERT INTO mysql_order_by_test (uid, name, sex) VALUES(3, '王二麻子', 1);

index최적화를 통해 MySQL의 ORDER BY 문 최적화 구현:

1. SQL 문의 형식이

SELECT [column1],[column2],…. FROM [TABLE] ORDER BY [sort];

[정렬] 필드에 인덱스를 생성하면 해당 인덱스를 사용하여 순서별 최적화를 수행할 수 있습니다.

2. WHERE + ORDER BY 형식의 인덱스 최적화:

SELECT [column1],[column2],…. FROM [TABLE] WHERE [columnX] = [value] ORDER BY [sort];

정렬별 최적화를 달성하기 위해 공동 인덱스(columnX, sort)를 만듭니다.

참고: 열의 경우 (x, y, uid) 인덱스를 설정하는 것보다 최적화가 훨씬 낫습니다. 경우에 따라 MySQL은 추가 정렬 없이 인덱스를 사용하여 ORDER BY 절을 충족할 수 있습니다. where 조건과 order by는 동일한 인덱스를 사용하고, order by의 순서는 인덱스 순서와 동일하며, order by의 필드는 모두 오름차순 또는 내림차순입니다.

예: 다음 SQL은 인덱스를 사용할 수 있습니다.

SELECT [column1],[column2],…. FROM [TABLE] WHERE [columnX] IN ([value1],[value2],…) ORDER BY[sort];

그러나 다음과 같은 경우에는 인덱스가 사용되지 않습니다.

SELECT * FROM [table] WHERE uid=1 ORDER x,y LIMIT 0,10;

위 내용은 MySQL 주문별 명령문 최적화 코드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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