Maison  >  Article  >  base de données  >  Quand les tables temporaires sont-elles utilisées ? Résumé de l'utilisation des tables temporaires MySQL

Quand les tables temporaires sont-elles utilisées ? Résumé de l'utilisation des tables temporaires MySQL

php是最好的语言
php是最好的语言original
2018-08-08 11:54:433986parcourir

Résumé : MySQL utilise des tables temporaires dans de nombreux cas. Résumons quand les tables temporaires sont utilisées. Que sont les tables temporaires ? MySQL est utilisé pour stocker certains ensembles de résultats intermédiaires. connexion. On peut voir que Mysql supprimera automatiquement la table et libérera tout l'espace lorsque la connexion sera fermée.

MySQL utilise des tables temporaires dans de nombreux cas. Résumons quand les tables temporaires sont utilisées :

Qu'est-ce qu'une table temporaire : MySQL est utilisé pour stocker certains ensembles de résultats intermédiaires. Tables et tables temporaires. ne sont visibles que dans la connexion actuelle. Lorsque la connexion est fermée, Mysql supprimera automatiquement la table et libérera tout l'espace. Pourquoi les tables temporaires sont générées : Généralement, les tables temporaires sont créées en grand nombre en raison de SQL complexes

Les tables temporaires sont divisées en deux types, l'une est une table temporaire en mémoire et l'autre est une table temporaire sur disque. La table temporaire de mémoire utilise le moteur de stockage de mémoire et la table temporaire de disque utilise le moteur de stockage myisam (les tables temporaires de disque peuvent également utiliser le moteur de stockage innodb. Utilisez le paramètre internal_tmp_disk_storage_engine pour contrôler quel moteur de stockage est utilisé. À partir de mysql5.7.6, la valeur par défaut est le moteur de stockage innodb, les versions précédentes étant par défaut le moteur de stockage myisam). Utilisez les paramètres Created_tmp_disk_tables et Created_tmp_tables pour afficher le nombre de tables temporaires de disque générées et toutes les tables temporaires générées (mémoire et disque).

La taille de l'espace table temporaire de la mémoire est contrôlée par deux paramètres : tmp_table_size et max_heap_table_size. De manière générale, le plus petit des deux paramètres est utilisé pour contrôler la valeur maximale de l'espace table temporaire en mémoire. Pour les tables temporaires initialement créées en mémoire puis transférées vers des tables temporaires sur le disque en raison de données trop volumineuses, seul max_heap_table_size est utilisé. Contrôle des paramètres. Il n'y a aucun contrôle de taille pour les tables temporaires générées directement sur le disque.

Les opérations suivantes utiliseront des tables temporaires :

1ã requête d'union

2ã Pour les opérations d'affichage, telles que l'utilisation de certains algorithmes TEMPTABLE, d'union ou d'agrégation

3ã Sous-requête

4ã semi-jointure incluant not in, exist, etc.

5ã Table dérivée générée par requête

6ã Groupe complexe par et ordre par

7ã Insérer, sélectionner la même table, mysql générera une table temporaire pour mettre en cache les lignes sélectionnées

8ã Mises à jour multiples de la table

9ã Instruction GROUP_CONCAT() ou COUNT(DISTINCT)

. . .

Mysql empêchera également l'utilisation de l'espace table mémoire et utilisera directement les tables temporaires du disque :

1ã La table contient des colonnes BLOB ou TEXT

2ã Lors de l'utilisation de union ou union all , Lorsque la clause select a des colonnes supérieures à 512 octets

3ã Afficher les colonnes ou les tables de desc, il existe des clauses LOB ou TEXT

4ã Clauses GROUP BY ou DISTINCT contenant des colonnes supérieures à 512 octets Colonne

Recommandations associées :

Utilisation de la table temporaire MySQL

Comment utiliser la table temporaire dans Mysql

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