加入收藏 | 设为首页 | 会员中心 | 我要投稿 鞍山站长网 (https://www.0412zz.com/)- 应用安全、运维、云计算、5G、云通信!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql 数据库优化利器 PROCEDURE ANALYSE

发布时间:2022-06-18 09:04:06 所属栏目:MySql教程 来源:互联网
导读:本文章来给大家介绍一个新的命令PROCEDURE ANALYSE,他可以很对的对mysql数据库结构进行优化,下面我来简单介绍一下此函数用法。 PROCEDURE ANALYSE 通过分析select查询结果对现有的表的每一列给出优化的建议。 PROCEDURE ANALYSE的语法如下: SELECT FROM WHE
  本文章来给大家介绍一个新的命令PROCEDURE ANALYSE,他可以很对的对mysql数据库结构进行优化,下面我来简单介绍一下此函数用法。
 
  PROCEDURE ANALYSE 通过分析select查询结果对现有的表的每一列给出优化的建议。
 
  PROCEDURE ANALYSE的语法如下:
 
  SELECT … FROM … WHERE … PROCEDURE ANALYSE([max_elements,[max_memory]])
 
  max_elements (默认值256)analyze查找每一列不同值时所需关注的最大不同值的数量.
 
  analyze还用这个值来检查优化的数据类型是否该是ENUM,如果该列的不同值的数量超过了.
 
  max_elements值ENUM就不做为建议优化的数据类型。
 
  max_memory,默认值8192,analyze查找每一列所有不同值时可能分配的最大的内存数量,代码如下:
 
  SELECT * FROM web_member procedure analyse(1)
 
  样例程序,代码如下:
 
  select * from students procedure analyse();
 
  select * from students procedure analyse(16,256);
 
  第二条语句要求procedure analyse()不要建议含有多于16个值,或者含有多于256字节的enum类型,如果没有限制,输出可能会很长;
 
  实例代码如下:
 
  ------------------------------------------------------------------------------------
  mysql> DESC user_account;
  +-----------+------------------+------+-----+---------+----------------+
  | Field | Type | Null | Key | Default | Extra |
  +-----------+------------------+------+-----+---------+----------------+
  | USERID | int(10) unsigned | NO | PRI | NULL | auto_increment |
  | USERNAME | varchar(10) | NO | | NULL | |
  | PASSSWORD | varchar(30) | NO | | NULL | |
  | GROUPNAME | varchar(10) | YES | | NULL | |
  +-----------+------------------+------+-----+---------+----------------+
  4 rows in set (0.00 sec)
  mysql> select * from user_account PROCEDURE ANALYSE(1)G;
  *************************** 1. row ***************************
  Field_name: ibatis.user_account.USERID
  Min_value: 1
  Max_value: 103
  Min_length: 1
  Max_length: 3
  Empties_or_zeros: 0
  Nulls: 0
  Avg_value_or_avg_length: 51.7500
  Std: 50.2562
  Optimal_fieldtype: TINYINT(3) UNSIGNED NOT NULL
  *************************** 2. row ***************************
  Field_name: ibatis.user_account.USERNAME
  Min_value: dfsa  --phpfensi.com
  Max_value: LMEADORS
  .........................................................
  ---------------------------------------------------------------------------------------
  从第一行输出我们可以看到analyze分析ibatis.user_account.USERID列最小值1,最大值103,最小长度1,长度3...,并给出了改字段的优化建议,建议将该字段的数据类型改成TINYINT(3) UNSIGNED NOT NULL.

(编辑:鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读