用PROCEDURE ANALYSE优化MYSQL表结构
来源:互联网 发布:impress.js教程 编辑:程序博客网 时间:2024/04/28 10:45
PROCEDURE ANALYSE 通过分析select查询结果对现有的表的每一列给出优化的建议。
PROCEDURE ANALYSE的语法如下:
SELECT ... FROM ... WHERE ... PROCEDURE ANALYSE([
analyze还用这个值来检查优化的数据类型是否该是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
Max_value: LMEADORS
.........................................................
---------------------------------------------------------------------------------------
从第一行输出我们可以看到analyze分析ibatis.user_account.USERID列最小值1,最大值103,最小长度1,
最大长度3...,并给出了改字段的优化建议:建议将该字段的数据类型改成TINYINT(3) UNSIGNED NOT NULL。
总结
从上面这个例子我们可以看出analyze能根据目前表中的数据情况给出优化建议。当数据库在生产环境运行
一定时间以后,开发或是DBA能参考analyze的分析结果来对表结构做出一定的优化。
参考资料
MYSQL REFERENCE-PROCEDURE ANALYSE
其他相关
Mysql中的文件排序(filesort)的含义
Making use of procedure analyse
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的分析结果来对表结构做出一定的优化。
参考资料
MYSQL REFERENCE-PROCEDURE ANALYSE
其他相关
Mysql中的文件排序(filesort)的含义
Making use of procedure analyse
- 用PROCEDURE ANALYSE优化MYSQL表结构
- mysql表结构优化语句procedure analyse();
- 【SQL调优】MYSQL使用PROCEDURE ANALYSE()优化表结构
- 使用procedure analyse()分析mysql给出的关于表结构的优化建议
- mysql优化(一) procedure analyse()优化表的数据类型
- Mysql 数据库 优化利器 PROCEDURE ANALYSE
- mysql PROCEDURE ANALYSE()
- MySQL中PROCEDURE ANALYSE
- mysql procedure analyse()的使用
- PROCEDURE ANALYSE()为mysql提高性能提供建议
- MySQL的两个命令 ---- explain和procedure analyse
- MySQL表结构优化
- MySQL表结构优化
- MySQL表结构优化
- Mysql表结构优化
- MySQL表结构优化
- Mysql数据库表结构优化
- MySql优化--数据库和表结构优化
- eclipse下的项目加载mysql驱动
- Android JB的reboot流程
- libvlc简单例子(1.1.0以后版本)vs2008
- Winform-NumericUpDown和ComboBox年月日时联动
- IOS 获取时间
- 用PROCEDURE ANALYSE优化MYSQL表结构
- final, finally, finalize() 的区别
- Yii快速入门12
- 分布环境下Tuscany webservice 客户端的调用
- 解决ie6 ie7中js不能通过appendChild("tr")添加table行的方法
- flash/flex socket通讯实例
- 【SENCHA TOUCH】Sencha Touch ExtJs 给 Button 添加图片(二)
- YII快速入门教程13
- 在O(n)时间复杂度内找出数组中的众数