Maison  >  Article  >  base de données  >  Explication détaillée du code d'optimisation de l'ordre par instruction MySQL

Explication détaillée du code d'optimisation de l'ordre par instruction MySQL

伊谢尔伦
伊谢尔伦original
2017-06-28 14:06:511786parcourir

L'instruction Order by est utilisée pour le tri. Nous utilisons souvent Order by pour le tri. Je vais maintenant vous parler de l'utilisation de Order by et du tri optimisé. Les étudiants dans le besoin peuvent se référer à

<.>MySQL Le mot-clé Order By est utilisé pour classer les données dans l'enregistrement. Le mot-clé MySQL Order By est classé en fonction des mots-clés.
Le mot-clé ORDER BY est utilisé pour classer les données dans l'enregistrement.

SELECT column_name(s) 
FROM table_name 
ORDER BY column_name
Exemple

Code de création 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, &#39;www.jb51.net&#39;, 1);
INSERT INTO mysql_order_by_test (uid, name, sex) VALUES(2, &#39;李四&#39;, 2);
INSERT INTO mysql_order_by_test (uid, name, sex) VALUES(3, &#39;王二麻子&#39;, 1);
Implémentez l'optimisation de l'instruction ORDER BY de MySQL via l'optimisation

index  :

1. Optimisation de l'index de ORDER BY. Si une instruction SQL est sous la forme :

SELECT [column1],[column2],…. FROM [TABLE] ORDER BY [sort];
et que vous créez un index dans le champ [tri], vous pouvez utiliser l'index pour effectuer un tri par optimisation.

2. Optimisation de l'index de WHERE + ORDER BY, sous la forme :

SELECT [column1],[column2],…. FROM [TABLE] WHERE [columnX] = [value] ORDER BY [sort];
Créer un index conjoint (colonneX, tri) pour réaliser l'ordre par optimisation.

Remarque : Si la colonne >

Construire un index sur (uid, x, y) pour obtenir l'ordre par optimisation est bien mieux que de construire un index sur (x, y, uid)

SELECT [column1],[column2],…. FROM [TABLE] WHERE [columnX] IN ([value1],[value2],…) ORDER BY[sort];
Dans certains cas, MySQL peut utiliser un index pour satisfaire la clause ORDER BY sans nécessiter de tri supplémentaire. La condition Where et l'ordre par utilisent le même index, et l'ordre de l'ordre par est le même que l'ordre de l'index, et les champs de l'ordre par sont tous classés par ordre croissant ou décroissant.

Par exemple : le SQL suivant peut utiliser des index.
SELECT * FROM [table] WHERE uid=1 ORDER x,y LIMIT 0,10;

Mais l'index n'est pas utilisé dans les cas suivants :

SELECT * FROM t1 ORDER BY key_part1,key_part2,... ;
SELECT * FROM t1 WHERE key_part1=1 ORDER BY key_part1 DESC, key_part2 DESC;
SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 DESC;

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn