zoukankan      html  css  js  c++  java
  • PROCEDURE ANALYSE 通过分析select查询结果

    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。

    总结   从上面这个例子我们可以看出analyze能根据目前表中的数据情况给出优化建议。当数据库在生产环境运行一定时间以后,开发或是DBA能参考analyze的分析结果来对表结构做出一定的优化。

  • 相关阅读:
    乐观锁与悲观锁——解决并发问题
    CentOS7 loaded active exited
    ubuntu安装phpVirtualBox web服务
    linux drwxr-xr-x 是什么意思
    phpmyadmin配置文件权限错误,不应任何用户都能修改
    转: CentOS安装jdk8
    PostgreSQL windows service启动失败
    PostgreSQL 添加自定义变量
    数据库检查约束是否存在
    转:PostgreSQL Cheat Sheet
  • 原文地址:https://www.cnblogs.com/sunss/p/1845817.html
Copyright © 2011-2022 走看看