Mysql优化-Procedure_Analyse优化表结构

一。前言
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


一定要注意,这些只是建议,只有当你的表里的数据越来越多时,这些建议才会变得准确。一定要记住,你才是最终做决定的人。 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值