Mysql优化-Procedure_Analyse优化表结构

2/13/2017来源:SQL技巧人气:567

一。前言 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。 一定要注意,这些只是建议,只有当你的表里的数据越来越多时,这些建议才会变得准确。一定要记住,你才是最终做决定的人。