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

 更新时间:2016年12月14日 10:15:42   投稿:daisy  
不知道是否遇到过为MySQL表结构该选择什么类型字段而郁闷?或者为MySQL字段该选择多少长度而纠结?下面这篇文章就给大家介绍一个武林秘籍吧~也是我最近才学来的,感兴趣的朋友们下面来一起看看吧。

简介

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中MVCC机制的原理

    说说MySQL中MVCC机制的原理

    MVCC是一种多并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。本文主要介绍了MySQL中MVCC机制的原理,感兴趣的同学可以参考阅读
    2023-04-04
  • 深入了解MySQL锁机制及应用场景

    深入了解MySQL锁机制及应用场景

    MySQL锁是操作MySQL数据库时常用的一种机制。MySQL锁可以保证多个用户在同时执行读写操作时,能够互相协同、避免数据出现不一致或者读写冲突等问题。本篇文章将详细介绍MySQL锁的基本知识和具体应用
    2023-03-03
  • MySQL主从复制不一致的原因分析以及解决

    MySQL主从复制不一致的原因分析以及解决

    这篇文章主要介绍了MySQL主从复制不一致的原因分析以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • MySQL中explain使用快速查询手册

    MySQL中explain使用快速查询手册

    我们会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,会用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用索引,下面这篇文章主要介绍了关于MySQL中explain使用快速查询手册的相关资料,需要的朋友可以参考下
    2022-10-10
  • Mysql索引详细介绍

    Mysql索引详细介绍

    这篇文章主要介绍了Mysql索引详细介绍,本文讲解了Mysql索引简介、设计索引的原则、如何使用索引等内容,需要的朋友可以参考下
    2014-07-07
  • mysql中模糊查询的四种用法介绍

    mysql中模糊查询的四种用法介绍

    这篇文章主要介绍了mysql中模糊查询的四种用法,需要的朋友可以参考下
    2014-03-03
  • mysql中根据已有的表来创建新表的三种方式(最新推荐)

    mysql中根据已有的表来创建新表的三种方式(最新推荐)

    这篇文章主要介绍了mysql中根据已有的表来创建新表的三种方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • MySQL错误代码:1052 Column 'xxx' in field list is ambiguous的原因和解决

    MySQL错误代码:1052 Column 'xxx' in field list is

    今天在工作中写sql语句时遇到了个sql错误,为记录并不再重复出错,下面这篇文章主要给大家介绍了关于MySQL错误代码:1052 Column 'xxx' in field list is ambiguous的原因和解决方法,需要的朋友可以参考下
    2023-04-04
  • MySQL复制机制原理讲解

    MySQL复制机制原理讲解

    在本篇文章中小编通过诙谐幽默的语言图文给大家讲述了MySQL复制机制的原理及相关知识点,需要的朋友们参考下。
    2019-05-05
  • MySQL数据库基本SQL语句教程之高级操作

    MySQL数据库基本SQL语句教程之高级操作

    对MySQL数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理,下面这篇文章主要给大家介绍了关于MySQL数据库基本SQL语句教程之高级操作的相关资料,需要的朋友可以参考下
    2022-06-06

最新评论