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

所属分类: 数据库 / Mysql 阅读数: 876
收藏 0 赞 0 分享

简介

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()函数的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

更多精彩内容其他人还在看

Mysql 数据库更新错误的解决方法

Mysql 数据库更新错误的解决方法,需要的朋友可以参考下。
收藏 0 赞 0 分享

mysql主从库不同步问题解决方法

本来配置可以使用的mysql主从库同步的数据库,突然出现无法同步的情况。那么大家可以参考下面的方法解决下。
收藏 0 赞 0 分享

解决mysql ERROR 1017:Can't find file: '/xxx.frm' 错误

如果重启服务器前没有关闭mysql,MySql的MyiSAM表很有可能会出现 ERROR #1017 :Can't find file: '/xxx.frm' 的错误
收藏 0 赞 0 分享

linux忘记mysql密码处理方法

这篇文章主要为大家介绍下linux忘记mysql密码处理方法,需要的朋友可以参考下。
收藏 0 赞 0 分享

MySQL 重装MySQL后, mysql服务无法启动

把mysql程序卸载后, 重装, 结果mysql服务启动不了,碰到这个问题的朋友可以参考下。
收藏 0 赞 0 分享

RedHat下MySQL的基本使用方法分享

RedHat 下MySQL安装,简单设置以用基本的使用方法,需要的朋友可以参考下。
收藏 0 赞 0 分享

mysql千万级数据大表该如何优化?

如何设计或优化千万级别的大表?此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如何做,对于一个存储设计,必须考虑业务特点,收集的信息如下
收藏 0 赞 0 分享

彻底卸载MySQL的方法分享

由于安装MySQL的时候,疏忽没有选择底层编码方式,采用默认的ASCII的编码格式,于是接二连三的中文转换问题随之而来,就想卸载了重新安装MYSQL,这一卸载倒是出了问题,导致安装的时候安装不上,在网上找了一个多小时也没解决。
收藏 0 赞 0 分享

MySQL数据表字段内容的批量修改、清空、复制等更新命令

MySQL数据表字段内容的批量修改、清空、复制等更新命令,需要的朋友可以参考下。
收藏 0 赞 0 分享

MySQL SHOW 命令的使用介绍

MySQL SHOW 命令的使用介绍,使用mysql的朋友可以参考下。
收藏 0 赞 0 分享
查看更多