Mysql优化-Procedure_Analyse优化表结构
  kG76yXKS2ROl 2023年11月02日 55 0


一。前言

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。

 

 

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

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
kG76yXKS2ROl
最新推荐 更多