【SQL调优】MYSQL使用PROCEDURE ANALYSE()优化表结构

PROCEDURE ANALYSE() 会让 MySQL 帮你去分析你的字段和其实际的数据,并会给你一些有用的建议。只有表中有实际的数据,这些建议才会变得有用,因为要做一些大的决定是需要有数据作为基础的。


语法:

	SELECT ... FROM ... WHERE ... PROCEDURE ANALYSE([max_elements,[max_memory]])
	max_elements (默认值256) analyze查找每一列不同值时所需关注的最大不同值的数量.
                  analyze还用这个值来检查优化的数据类型是否该是ENUM,如果该列的不同值的数量超过了
	              max_elements值ENUM就不做为建议优化的数据类型
max_memory (默认值8192) analyze查找每一列所有不同值时可能分配的最大的内存数量
例: 有一个表结构如下:
	
CREATE TABLE `hk_account` (
  `Acc_ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '账号ID',
  `Acc_Account` varchar(20) NOT NULL COMMENT '登录账号',
  `Acc_Password` varchar(128) NOT NULL COMMENT '登录密码',
  `Acc_Salt` varchar(32) NOT NULL COMMENT '密码加密',
  `Acc_Type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '账号类型。1:管理员、2:普通用户、3:企业',
  `Acc_Status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '账号使用状态。1:正常使用、2:冻结',
  `Acc_CTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '账号创建时间',
  `Acc_UTime` timestamp NULL DEFAULT NULL COMMENT '账号信息更新时间',
  PRIMARY KEY (`Acc_ID`),
  KEY `Acc_ID_Key` (`Acc_ID`)
) ENGINE=InnoDB AUTO_INCREMENT=268797 DEFAULT CHARSET=utf8
为以上表执行结构分析:
SELECT * FROM HK_ACCOUNT PROCEDURE ANALYSE(1);

得到分析结果:

从以上表格可以看出,分析出了字段最小值,最大值,最小长度,最大长度,还有最后Optimal_fieldtype代表了表结构建议,
可以根据数据分析建议来修改表结构,使之更符合数据存储规范。
	

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扶朕去网吧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值