MySQL 临时表与dstat mysql临时表监控插件开发
MySQL在执行SQL查询时可能会用到临时表,一般而言,用到临时表就意味着性能较低。MySQL临时表可分:内存临时表和磁盘临时表,磁盘
临时表简介
MySQL在执行SQL查询时可能会用到临时表,一般而言,用到临时表就意味着性能较低。MySQL临时表可分:内存临时表和磁盘临时表,,磁盘临时表使用MyISAM存储,而内存临时表则使用Memory引擎。MySQL使用内存临时表来存放查询的中间结果集,如果中间结果集大于临时表的容量设定,又或者中间结果集含TEXT或BLOB列类型字段,则MySQL会把其转化为磁盘临时表。Linux平台缺省是/tmp,/tmp目录小的系统要注意啦。
临时表特性
下面列举几个内存临时表的特性
1.表结构(.frm)在磁盘,数据在内存
2.缺省使用哈希索引
3.定长存储(BTW:即使是varchar也是定长)
4.只支持表锁
5.不支持TEXT和BLOB列类型
相关参数
1 大小参数
MIN{tmp_table_size,max_heap_table_size}
mysql> show global variables like '%table_size';
+---------------------+----------+
| Variable_name | Value |
+---------------------+----------+
| max_heap_table_size | 16777216 |
| tmp_table_size | 16777216 |
+---------------------+----------+
2 rows in set (0.00 sec)
2 数量参数
mysql> show global status like 'created_tmp%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| Created_tmp_disk_tables | 7 |
| Created_tmp_files | 6 |
| Created_tmp_tables | 90 |
+-------------------------+-------+
3 rows in set (0.00 sec)
通过ps_helper我们可以细化这些临时表到底是谁的临时表
mysql> SELECT query, exec_count, memory_tmp_tables, disk_tmp_tables, avg_tmp_tables_per_query, tmp_tables_to_disk_pct FROM statements_with_temp_tables LIMIT 5;
+-------------------------------------------------------------------+------------+-------------------+-----------------+--------------------------+------------------------+
| query | exec_count | memory_tmp_tables | disk_tmp_tables | avg_tmp_tables_per_query | tmp_tables_to_disk_pct |
+-------------------------------------------------------------------+------------+-------------------+-----------------+--------------------------+------------------------+
| SELECT IF ( ( `locate` ( ? , ` ... . `COMPRESSED_SIZE` ) ) DESC | 2 | 4 | 2 | 2 | 50 |
| SELECT IF ( ( `locate` ( ? , ` ... MPRESSED_SIZE` = ? ) , ? , ... | 2 | 4 | 2 | 2 | 50 |
| SELECT IF ( `isnull` ( `inform ... ` = `performance_schema` . ... | 2 | 4 | 2 | 2 | 50 |
| SELECT IF ( `isnull` ( `inform ... by_thread_by_event_name` . ... | 2 | 4 | 2 | 2 | 50 |
| SHOW FULL FIELDS FROM `stateme ... ` , `performance_schema` . ... | 2 | 4 | 2 | 2 | 50 |
+-------------------------------------------------------------------+------------+-------------------+-----------------+--------------------------+------------------------+
5 rows in set (0.00 sec)

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Cet article aborde l'erreur "Implom Open Open Wibrary" de MySQL. Le problème découle de l'incapacité de MySQL à localiser les bibliothèques partagées nécessaires (fichiers .so / .dll). Les solutions impliquent la vérification de l'installation de la bibliothèque via le package du système m

Cet article explore l'optimisation de l'utilisation de la mémoire MySQL dans Docker. Il traite des techniques de surveillance (statistiques Docker, du schéma de performance, des outils externes) et des stratégies de configuration. Il s'agit notamment des limites de mémoire Docker, de l'échange et des CGROUP, à côté

L'article discute de l'utilisation de l'instruction ALTER TABLE de MySQL pour modifier les tables, notamment en ajoutant / abandon les colonnes, en renommant des tables / colonnes et en modifiant les types de données de colonne.

Cet article compare l'installation de MySQL sur Linux directement par rapport à l'utilisation de conteneurs Podman, avec / sans phpmyadmin. Il détaille les étapes d'installation pour chaque méthode, mettant l'accent sur les avantages de Podman isolément, portabilité et reproductibilité, mais aussi

Cet article fournit un aperçu complet de SQLite, une base de données relationnelle autonome et sans serveur. Il détaille les avantages de SQLite (simplicité, portabilité, facilité d'utilisation) et les inconvénients (limitations de concurrence, défis d'évolutivité). C

L'article discute de la configuration du cryptage SSL / TLS pour MySQL, y compris la génération et la vérification de certificat. Le problème principal est d'utiliser les implications de sécurité des certificats auto-signés. [Compte de caractère: 159]

Ce guide démontre l'installation et la gestion de plusieurs versions MySQL sur MacOS à l'aide de Homebrew. Il met l'accent sur l'utilisation de Homebrew pour isoler les installations, empêchant les conflits. L'article détaille l'installation, les services de démarrage / d'arrêt et le meilleur PRA

L'article traite des outils de GUI MySQL populaires comme MySQL Workbench et PhpMyAdmin, en comparant leurs fonctionnalités et leur pertinence pour les débutants et les utilisateurs avancés. [159 caractères]
