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尋找每一列所有不同值時可能分配的最大的記憶體數量
範例程式
------------------------------------------------------------------------------------
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
.........................................................
---------------------------------------------------------------------------------------
從第一行輸出我們可以看到analyze分析ibatis.user_account.USERID列最小值1,最大值103,最小長度1,
最大長度3...,並給出了改欄位的最佳化建議:建議將該欄位的資料類型改成TINYINT(3) UNSIGNED NOT NULL。
http://www.baobaoke.com/space.php?uid=179&do=blog&id=33484