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

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

1)场景分析

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

2)具体使用步骤

第一步:执行如下命令:

select * from `person` PROCEDURE ANALYSE();

第二步:结果展示为:

第三步:分析结果

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

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

alter table person modify personname varchar(30);

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

1)场景分析

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

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

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

create table temp_person(

id int(11),

personname varchar(45),

age int(11),

sex int(1)

);

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

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

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

select sum(age) from person;

欢迎大家关注该微信公众号

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180708G0L7MD00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券