mysql procedure analyse()的使用
来源:互联网 发布:淘宝客订单查询 编辑:程序博客网 时间:2024/05/12 03:41
菜鸟时代的我们当初在接到项目分析设计mysql数据库时,或多或少会借鉴于一些成熟的开源项目的数据库设计。
比如设计sns系统数据库时我们有可能会根据自己的数据库知识同时分析借鉴uchome的库结构,一个经典的例子是我在设计论坛数据库时借鉴了dz的帖子表主题表的某些字段冗余的思想,以及大字段水平拆分概念;当初并不知道为什么,更不理解有些甚至背离了数据库设计范式。随着知识的增长概念性,实际情况都在变化。慢慢的知道了一些基础知识
(这里我要推荐一本很好的mysql的书:简朝阳先生的《mysql性能调优与架构设计》,当然我只是泛读了一遍,等待深入研究中)
回归标题要说的内容,我们在设计表时有时候总会思考到底某个字段选用什么类型呢。跨过菜鸟级的phper会有相当的经验直接啪啪啪敲出来,其实我们在后期调优时也可以使用 procedure analyse();分析表结构看看mysql给我们的字段建议,综合实际情况调整一些字段的类型(这个已经很琐碎了,一般应用都到不了这么细,并且我们鉴于经验设计的数据库基本都能满足应用。我这里只是了解到了这些知识给自己做个记录而已)。
procedure analyse();语法如下
select column from table_name procedure analyse();
以下引用一段文章:
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: 0Avg_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。
- mysql procedure analyse()的使用
- mysql PROCEDURE ANALYSE()
- MySQL中PROCEDURE ANALYSE
- 使用procedure analyse()分析mysql给出的关于表结构的优化建议
- 【SQL调优】MYSQL使用PROCEDURE ANALYSE()优化表结构
- mysql优化(一) procedure analyse()优化表的数据类型
- MySQL的两个命令 ---- explain和procedure analyse
- 用PROCEDURE ANALYSE优化MYSQL表结构
- Mysql 数据库 优化利器 PROCEDURE ANALYSE
- mysql表结构优化语句procedure analyse();
- PROCEDURE ANALYSE()为mysql提高性能提供建议
- mysql过程(procedure)的使用
- mysql procedure使用笔记
- MySQL中使用procedure
- Mysql的存储过程procedure
- procedure in out的使用
- mysql(procedure)
- mysql procedure
- Android基于distcc的分布式编译及负载均衡的实现
- Java ME引路蜂地图开发示例:第一个地图应用
- poj 3325 ICPC Score Totalizer Software
- VC6对话框添加初始化OnInitDialog()虚函数
- 记普林斯顿大学教授李凯:从中国工人到美国院士
- mysql procedure analyse()的使用
- 正式开始写技术博客
- 51cto下载
- 【算法理论】拟阵的理解
- mysql的优化
- “积分模式”应用 —— “爱因斯坦大难题”代码实现
- 向冗余数据要空间
- Drupal 7中如何开启简介URL(Clean URL)?
- 有关return、break、continue的区别