November 21, 2015

procedure analyse() 随手记

Procedure Analyze: http://dev.mysql.com/doc/refman/5.6/en/procedure-analyse.html Procedure Analyze是MySQL提供的一个分析结果集的接口,以帮助提供数据类型优化建议。其语法格式如下: SELECT … FROM … WHERE … PROCEDURE ANALYSE([max_elements,[max_memory]]) max_elements(默认256)表示最多使用这么多个不同的列值来进行分析,是否可以使用ENUM类型,如果有超过这么多个不同的值,enum就不会纳入到考虑中。 max_memory(默认8192),是Analyze()为每个列分配的最大内存,用于尝试找到所有不同的列值。 例如,我们在一个普通的表上执行: mysql> select k from sbtest99 procedure analyse()\G *************************** 1. row *************************** Field_name: sb1.sbtest99.k Min_value: 12992 Max_value: 85008 Min_length: 5 Max_length: 5 Empties_or_zeros: 0 Nulls: 0 Avg_value_or_avg_length: 49996.6047 Std: 43159.4545 Optimal_fieldtype: MEDIUMINT(5) UNSIGNED NOT NULL 1 row in set (0.03 sec) […]