|
|
|
|
移动端

MySQL数据库对象的2个优化技巧:场景分析、3步使用详解!

有时候,我们在定义表的字段类型,或者长度的时候,不确定应该给出多长,因而,导致实际操作中会将长度定义的有冗余,这样会造成浪费。而PROCEDURE ANALYSE()语句就是通过分析表的数据,给出优化建议。

作者:互联网IT技术来源:今日头条|2017-12-29 16:19

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

(1)利用PROCEDURE ANALYSE()优化表的数据类型

1)场景分析

有时候,我们在定义表的字段类型,或者长度的时候,不确定应该给出多长,因而,导致实际操作中会将长度定义的有冗余,这样会造成浪费。而PROCEDURE ANALYSE()语句就是通过分析表的数据,给出优化建议。

2)具体使用步骤

第一步:执行如下命令:

  1. select * from `person` PROCEDURE ANALYSE(); 

第二步:结果展示为:

Mysql数据库对象的2个优化技巧:场景分析、3步使用详解!

第三步:分析结果

比如第二行的结果可以看出:personnameMax_length为22.但是此表开始设置时是45,这样可以针对此字段的长度进行优化

第四步:利用alert 对表进行优化。

  1. alter table person modify personname varchar(30); 

(2)利用中间表提高统计查询的效率

1)场景分析

如果我们有一张关于客户的表,数据量非常大千万级别,而且是在线上运行的数据库实例中的表。此时我们需要进行统计查询,如果直接查询不但会对线上的表造成负面影响,而且效率不太高

2)利用中间表解决的办法

第一步:建立一张表结构跟目标表一样的临时表,这里以person表举例,建立临时表如下:

  1. create table temp_person( 
  2.  
  3. id int(11), 
  4.  
  5. personname varchar(45), 
  6.  
  7. age int(11), 
  8.  
  9. sex int(1) 
  10.  
  11. );  

第二步:将要查询的数据转移到中间表中

  1. insert into temp_person select * from person where sex = 1; 

第三步:基于中间表进行查询

  1. select sum(age) from person; 

此号已发布80多篇,多个专题的技术文章,如:

【Java专题】、【Spring专题】

【Servlet专题】、【并发编程专题】

【Redis专题】、【BATJ面试题解析】

【Dubbo专题】、【Mybatis专题】

【Mysql优化专题】(持续发布中)

大家关注此号后,便可阅读以上系列文章!

【编辑推荐】

  1. 年末干货 | Oracle数据库常用操作语句大全
  2. MySQL vs PostgreSQL: 5个你最关注的非技术维度的区别
  3. MySQL数据库主从同步延迟分析及解决方案
  4. 年终盘点 | 千万级融资!2017年数据库领域融资事件盘点
  5. MySQL - 常见的三种存储引擎
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

八万里路云和月——一个国家扶贫开发工作重点县的

通榆,这个距离各个交通枢纽都十万八千里的偏僻小县城,搭载着电子商务的快车,踏上了云高速,开辟了如火如荼的电商致富的新战场,实现了一...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊