欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL利用procedure analyse()函数优化表结构

程序员文章站 2023-12-12 15:30:58
简介 procedure analyse()函数是mysql内置的对mysql字段值进行统计分析后给出建议的字段类型。 语法 procesure an...

简介

procedure analyse()函数是mysql内置的对mysql字段值进行统计分析后给出建议的字段类型。

语法

procesure analyse(max_elements,max_memory)

max_elements

指定每列非重复值的最大值,当超过这个值的时候,mysql不会推荐enum类型。

max_memory

analyse()为每列找出所有非重复值所采用的最大内存大小。

实战演练

# 对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)

总结

以上就是关于mysql中procedure analyse()函数的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

上一篇:

下一篇: