mysql优化(一) procedure analyse()优化表的数据类型

版权声明:转载请附带本文地址 https://blog.csdn.net/liuyifeng1920/article/details/54096042

在创建数据库表之初, 需要考虑好表内每个字段的数据类型选择什么, 长度是否应该留有一定冗余.

MYSQL 提供了一个PROCEDURE ANALYSE() 函数可以对某张表进行分析, 同时还对数据库表列的数据类型提出了优化建议, 用户可以根据实际情考虑进行优化.

实用实例:
select * from login_logger PROCEDURE ANALYSE();
select * from login_logger PROCEDURE ANALYSE(16,256);

第二句表示 不要为那些包含值的个数超过16个,或者256个字节的ENUM枚举类型提出建议, 类似排除, 不然建议字段会很长不方便阅读.

先看一下login_logger 结构和数据,对比着来.
这里写图片描述

数据:
这里写图片描述

执行的结果为:
这里写图片描述

贴张大图:
这里写图片描述

咱们一个一个看分析的结果
1 他建议logger_id 字段 应用SMALLINT(5) UNSIGNED NOT NULL 类型的,但是我们的id是自增的,以后还会增加, 遂不管他.
2 外检user_id 同上.
3 ip字段定义的是varcaher 50 . ip字段可以优化为长度15.
4 时间字段datatime类型的,长度是固定的 ,可以优化位char(19)
5 结果字段, 因为结果要么是成功,要么是失败, 所以可以优化成枚举类型的.

个人总结:
PROCEDURE ANALYSE() 其实是根据你表内的实际数据,提供的优化方案, 所以建标初期并没有太大的帮助, 主要是针对运行一段时间的数据库进行优化处理.

猜你喜欢

转载自blog.csdn.net/liuyifeng1920/article/details/54096042