博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用PROCEDURE ANALYSE优化MYSQL表结构
阅读量:6293 次
发布时间:2019-06-22

本文共 1879 字,大约阅读时间需要 6 分钟。

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的分析结果来对表结构做出一定的优化。


参考资料



其他相关


转载于:https://www.cnblogs.com/liuensong/archive/2013/03/12/10140380.html

你可能感兴趣的文章
golang中并发sync和channel
查看>>
margin重叠与line-height属性
查看>>
服务器跟PC机的区别(转)
查看>>
Java核心技术之基础知识
查看>>
读书笔记_写给自学者的入门指南 >博客园||知识库
查看>>
iOS应用之间的跳转与数据传递
查看>>
CCleaner使用说明
查看>>
NOIP专题复习3 图论-强连通分量
查看>>
hdu Dragon Balls
查看>>
java代码-----indexOf()方法--从字符串的某个字符的第一次出现的位子开始
查看>>
java代码=====实现修改while()
查看>>
python (11)文件的读写 按行读文件
查看>>
Python 结巴分词(2)关键字提取
查看>>
python异常处理,日志处理
查看>>
MySQL字符集问题
查看>>
node服务器端模块化-commomjs
查看>>
20165330 2017-2018-2 《Java程序设计》第7周学习总结
查看>>
[转] css选择器中:first-child与:first-of-type的区别
查看>>
大数据基础2
查看>>
Sqoop
查看>>