Mysql 数据库优化利器 PROCEDURE ANALYSE

爱互踩 爱互踩流量交换~

本文章来给大家介绍一个新的命令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类型,如果没有限制,输出可能会很长;

实例代码如下:

  1. ------------------------------------------------------------------------------------
  2. mysql>DESCuser_account;
  3. +-----------+------------------+------+-----+---------+----------------+
  4. |Field|Type|Null|Key|Default|Extra|
  5. +-----------+------------------+------+-----+---------+----------------+
  6. |USERID|int(10)unsigned|NO|PRI|NULL|auto_increment|
  7. |USERNAME|varchar(10)|NO||NULL||
  8. |PASSSWORD|varchar(30)|NO||NULL||
  9. |GROUPNAME|varchar(10)|YES||NULL||
  10. +-----------+------------------+------+-----+---------+----------------+
  11. 4rowsinset(0.00sec)
  12. mysql>select*fromuser_accountPROCEDUREANALYSE(1)G;
  13. ***************************1.row***************************
  14. Field_name:ibatis.user_account.USERID
  15. Min_value:1
  16. Max_value:103
  17. Min_length:1
  18. Max_length:3
  19. Empties_or_zeros:0
  20. Nulls:0
  21. Avg_value_or_avg_length:51.7500
  22. Std:50.2562
  23. Optimal_fieldtype:TINYINT(3)UNSIGNEDNOTNULL
  24. ***************************2.row***************************
  25. Field_name:ibatis.user_account.USERNAME
  26. Min_value:dfsa--phpfensi.com
  27. Max_value:LMEADORS
  28. .........................................................
  29. ---------------------------------------------------------------------------------------

从第一行输出我们可以看到analyze分析ibatis.user_account.USERID列最小值1,最大值103,最小长度1,长度3...,并给出了改字段的优化建议,建议将该字段的数据类型改成TINYINT(3) UNSIGNED NOT NULL.

相关广告
  • Mysql 数据库优化利器 PROCEDURE ANALYSE Mysql 数据库优化利器 PROCEDURE ANALYSE Mysql 数据库优化利器 PROCEDURE ANALYSE
相关阅读

Mysql 数据库优化利器 PROCEDURE ANALYSE

2019/10/10 17:36:00 | 谷歌SEO算法 | SEO工具