ホームページ  >  記事  >  データベース  >  MySQL Order by Statement の最適化コードの詳細な説明

MySQL Order by Statement の最適化コードの詳細な説明

伊谢尔伦
伊谢尔伦オリジナル
2017-06-28 14:06:511827ブラウズ

並べ替えには Order by ステートメントがよく使われます。ここで、Order by と最適化された並べ替えの使い方について説明します。

MySQL Order By キーワードが使用されます。レコード内のデータを分類します。
MySQL Order By Keyword はキーワードに従って分類されます
ORDER BY キーワードはレコード内のデータを分類するために使用されます。

SELECT column_name(s) 
FROM table_name 
ORDER BY column_name

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. ORDER BY のインデックス最適化。 SQL ステートメントが次の形式の場合:

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

[sort] フィールドにインデックスを作成し、そのインデックスを使用して最適化による順序付けを実行できます。

2. WHERE + ORDER BY の形式でのインデックスの最適化:

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

結合インデックス (columnX、sort) を作成して、最適化による順序付けを実現します。

注: If 列の最適化は、(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 Order by Statement の最適化コードの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。