Mysql 数据库优化利器 PROCEDURE ANALYSE
发布:smiling 来源: PHP粉丝网 添加日期:2014-10-02 15:47:34 浏览: 评论:0
本文章来给大家介绍一个新的命令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类型,如果没有限制,输出可能会很长;
实例代码如下:
- ------------------------------------------------------------------------------------
- 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 --phpfensi.com
- Max_value: LMEADORS
- .........................................................
- ---------------------------------------------------------------------------------------
从第一行输出我们可以看到analyze分析ibatis.user_account.USERID列最小值1,最大值103,最小长度1,长度3...,并给出了改字段的优化建议,建议将该字段的数据类型改成TINYINT(3) UNSIGNED NOT NULL.
Tags: Mysql优化 PROCEDURE ANALYSE
相关文章
- ·Mysql线程池优化笔记(2014-09-23)
- ·mysql服务器常见的优化方法(2014-09-24)
- ·mysql优化配置之max_allowed_packet设置(2014-09-24)
- ·MySQL数据库高并发优化配置(2014-09-24)
- ·mysql优化参数thread_cache_size(2014-09-24)
- ·MySQL写入插入数据优化配置(2014-09-25)
- ·mysql优化之show status查看MySQL服务器状态信息(2014-09-26)
- ·MySQL数据库mysqlcheck优化表方法详解(2014-09-28)
- ·mysql取随机数据慢优化方法(2014-09-28)
- ·Mysql rand()随机取出记录的优化(2014-10-03)
- ·MySQl优化千万数据级快速分页sql语句(2014-10-08)
- ·mySQL优化my.ini配置详解说明(2014-10-08)
- ·MyISAM和InnoDB不同与优化方法(2014-10-14)
- ·Mysql limit 优化,百万至千万条记录实现快速分页(2014-10-14)
- ·mysql中索引使用一些优化方法与注意事项(2014-10-15)
- ·mysql 优化之COUNT(*)效率分析(2014-10-15)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)