澳门新萄京PROCEDURE ANALYSE 通过剖析select查询结果

使用procedure analyse()分析mysql

procedure analyse();语法如下

 

select column from table_name procedure analyse();

 

以下引述一段小说:

 

PROCEDURE ANALYSE
通过剖析select查询结果对现成的表的每1列给出优化的提出。

PROCEDURE ANALYSE的语法如下:

 

SELECT … FROM … WHERE … PROCEDURE
ANALYSE([max_elements,[max_memory]])

 

max_elements (暗中认可值25六)
analyze查找每一列差别值时所需关切的最大差别值的数量.

analyze还用那些值来检查优化的数据类型是或不是该是ENUM,要是该列的分裂值的数额超过了

max_elements值ENUM就不做为提议优化的数据类型。

max_memory   (暗中同意值8192)
analyze查找每1列全数区别值时可能分配的最大的内存数量

 

样例程序

------------------------------------------------------------------------------------
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
              Max_value: LMEADORS
.........................................................
---------------------------------------------------------------------------------------

 

从第3行输出大家能够见到analyze分析ibatis.user_account.USE奇骏ID列最小值一,最大值十3,最小长度①,

最大尺寸三…,并付诸了改字段的优化建议:建议将该字段的数据类型改成TINYINT(三)
UNSIGNED NOT NULL。

analyse()解析mysql procedure
analyse();语法如下 select column from table_name procedure analyse();
以下引述一段小说: PROCEDURE ANALYSE 通过深入分析sel…

PROCEDURE ANALYSE
通过解析select查询结果对现成的表的每一列给出优化的提议。
PROCEDURE ANALYSE的语法如下:
SELECT … FROM … WHERE … PROCEDURE
ANALYSE([max_elements,[max_memory]])

max_elements (暗许值25陆)
analyze查找每壹列不相同值时所需关怀的最大分歧值的数量.
analyze还用这一个值来检查优化的数据类型是或不是该是ENUM,借使该列的不相同值的数额超过了

*************************** 2. row
***************************            
Field_name: ibatis.user_account.USERNAME            
Min_value: dfsa              
Max_value:LMEADORS
…………………………………………………—————————————————————————————
从第一行输出大家得以见见analyze分析ibatis.user_account.USE福特ExplorerID列最小值一,最大值103,最小长度一,最大尺寸三…,
并提交了改字段的优化提议:提出将该字段的数据类型改成TINYINT(三) UNSIGNED
NOT NULL。

本文章来给我们介绍2个新的授命PROCEDURE
ANALYSE,他能够很对的对mysql数据库结构举办优化,上面小编来总结介绍一下此函数用法。

1

PROCEDURE ANALYSE 通过解析select查询结果对现存的表的每壹列给
出优化的提出。
PROCEDURE ANALYSE的语法如下:

复制代码

(壹)最大意素数 the maximum number of elements

max_memory   (默许值81玖贰)
analyze查找每一列全数不相同值时只怕分配的最大的内部存款和储蓄器数量样例程序————————————————————————————
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)

select * from students procedure analyse();
select * from students procedure analyse(16,256);

2

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
Max_value: LMEADORS

SELECT … FROM … WHERE … PROCEDURE
ANALYSE([max_澳门新萄京,elements,[max_memory]])max_elements (暗中同意值25陆)
analyze查找每一列差异值时所需关注的最大不一致值的数量.

 代码如下

一 此格局能够扶持调节“列是还是不是该被重定义为更加小的数据类型”

小结  
从地方那个例子大家得以看来analyze能依据当前表中的数据情状提交优化提出。当数据库在生养条件运行必将时间今后,开垦或是DBA能参照他事他说加以考察analyze的辨析结果来对表结构做出一定的优化。

2

select * from students procedure analyse();
select * from students procedure analyse(16,256);
第三条语句须求procedure
analyse()不要提议含有多于拾伍个值,只怕含有多于25陆字节的enum类型,如若未有限制,输出或许会不长;

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图