Maison  >  Article  >  base de données  >  MySQL utilise la fonction de procédure analyse() pour optimiser la structure de la table

MySQL utilise la fonction de procédure analyse() pour optimiser la structure de la table

黄舟
黄舟original
2017-01-18 11:15:061711parcourir

Système de gestion de bases de données relationnelles MySQL

MySQL est un petit système de gestion de bases de données relationnelles open source développé par la société suédoise MySQL AB. MySQL est largement utilisé sur les sites Web de petite et moyenne taille sur Internet. En raison de sa petite taille, de sa vitesse rapide, de son faible coût total de possession et surtout des caractéristiques de l'open source, de nombreux sites Web de petite et moyenne taille choisissent MySQL comme base de données de site Web afin de réduire le coût total de possession d'un site Web.


Je me demande si vous avez déjà été frustré par le type de champs à choisir pour la structure de table MySQL ? Ou ne savez-vous pas quelle longueur choisir pour un champ MySQL ? Dans l'article suivant, je vais vous présenter un secret d'arts martiaux que je n'ai appris que récemment. Les amis intéressés peuvent y jeter un œil ci-dessous.

Introduction

La fonction de procédure analyse() est le type de champ intégré de MySQL qui effectue une analyse statistique sur les valeurs des champs MySQL et donne des suggestions.

Syntaxe

procesure analyse(max_elements,max_memory)

max_elements

Spécifie la valeur maximale des valeurs non répétitives dans chaque colonne Lorsque cette valeur est dépassée, MySQL ne le fera pas. recommander le type enum.

max_memory

analyse() trouve la taille de mémoire maximale utilisée pour toutes les valeurs distinctes de chaque colonne.

Exercice pratique

# 对t1表所有的列进行分析
wing@3306>show create table t1;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                   |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| t1  | CREATE TABLE `t1` (
 `id` int(11) DEFAULT NULL,
 `name` varchar(16) DEFAULT NULL,
 `score` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
wing@3306>select * from t1 procedure analyse(4);
+---------------+-----------+-----------+------------+------------+------------------+-------+-------------------------+-------------+---------------------------+
| Field_name | Min_value | Max_value | Min_length | Max_length | Empties_or_zeros | Nulls | Avg_value_or_avg_length | Std | Optimal_fieldtype |
+---------------+-----------+-----------+------------+------------+------------------+-------+-------------------------+-------------+---------------------------+
| wing.t1.id  | 1    | 200000  |    1 |    6 |     0 |   0 | 100000.5000  | 116099.2790 | MEDIUMINT(6) UNSIGNED NOT NULL |
| wing.t1.name | 000jxc6V | zzznmkcX |     8 |     8 |      0 |   0 | 8.0000  | NULL    | CHAR(8) NOT NULL     |
| wing.t1.score | 1   | 100  |  1 | 3 |  0 |   0 | 50.4889  | 28.8768 | TINYINT(3) UNSIGNED NOT NULL  |
+---------------+-----------+-----------+------------+------------+------------------+-------+-------------------------+-------------+---------------------------+
3 rows in set (0.14 sec)

Résumé

Ce qui précède concerne la fonction de procédure analyse() dans MySQL. Pour plus de contenu connexe, veuillez prêter attention à. PHP Chinese Net (www.php.cn) !



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