首页  >  文章  >  数据库  >  Mysql优化-Procedure_Analyse优化表结构

Mysql优化-Procedure_Analyse优化表结构

黄舟
黄舟原创
2017-03-02 16:20:061601浏览

一。前言

PROCEDURE ANALYSE() ,在优化表结构时可以辅助参考分析语句。

利用此语句,MySQL 帮你去分析你的字段和其实际的数据,并会给你一些有用的建议。

【只有表中有实际的数据,这些建议才会变得有用,因为要做一些大的决定是需要有数据作为基础的。】 

例如,如果你创建了一个 INT 字段作为你的主键,然而并没有太多的数据,那么,PROCEDURE ANALYSE()会建议你把这个字段的类型改成 MEDIUMINT 。或是你使用了一个 VARCHAR 字段,因为数据不多,你可能会得到一个让你把它改成 ENUM 的建议。这些建议,都是可能因为数据不够多,所以决策做得就不够准。 

我们在设计表时有时候总会思考到底某个字段选用什么类型呢。跨过菜鸟级的phper会有相当的经验直接啪啪啪敲出来,其实我们在后期调优时也可以使用 procedure analyse();分析表结构看看mysql给我们的字段建议,综合实际情况调整一些字段的类型(这个已经很琐碎了,一般应用都到不了这么细,并且我们鉴于经验设计的数据库基本都能满足应用。

二。举例

procesure analyse(max_elements,max_memory)

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

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

mysql> select * from br_task procedure analyse(1,256) \G;



三。分析

以第4行的分析举例,可以看出,

br_Task.task_name字段,

列最小值:121 new

列最大值:韩-软文-全国-银牌见

最小长度:3字节

最大长度:52字节

平均长度:24.1852

优化建议:字段的数据类型改成VARCHAR(52) NOT NULL

一定要注意,这些只是建议,只有当你的表里的数据越来越多时,这些建议才会变得准确。一定要记住,你才是最终做决定的人。 

 以上就是Mysql优化-Procedure_Analyse优化表结构的内容,更多相关内容请关注PHP中文网(www.php.cn)!


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn