一。前言
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中文网(m.sbmmt.com)!