您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    SQL优化技巧总结,及案例剖析(2)
    时间:2020-03-05 21:13 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    select a.seller_id,       a.seller_name,       b.user_name,       c.statefrom a,     b,     cwhere a.seller_name = b.seller_name  and b.user_id = c.user_id  and c.user_id = 17  and a.gmt_create    BETWEEN DATE_ADD(NOW(), INTERVAL – 600 MINUTE)    AND DATE_ADD(NOW(), INTERVAL 600 MINUTE)order by a.gmt_create; 

    查看数据量

    SQL优化技巧总结,及案例剖析

    原执行时间

    原执行方案

    初步优化思绪

    SQL中 where条件字段类型要跟表结构分歧,表中user_id 为varchar(50)类型,实践SQL用的int类型,存在隐式转换,也未添加索引。将b和c表user_id 字段改成int类型。

    因存在b表和c表关联,将b和c表user_id创立索引

    因存在a表和b表关联,将a和b表seller_name字段创立索引

    应用复合索引消弭暂时表和排序

    初步优化SQL

    alter table b modify `user_id` int(10) DEFAULT NULL;alter table c modify `user_id` int(10) DEFAULT NULL;alter table c add index `idx_user_id`(`user_id`);alter table b add index `idx_user_id_sell_name`(`user_id`,`seller_name`);alter table a add index `idx_sellname_gmt_sellid`(`gmt_create`,`seller_name`,`seller_id`); 

    查看优化后执行时间

    查看优化后执行方案

    查看warnings信息

    继续优化alter table a modify "gmt_create" datetime DEFAULT NULL;

    查看执行时间

    查看执行方案

    总结

    查看执行方案 explain

    假设有告警信息,查看告警信息 show warnings;

    查看SQL触及的表结构和索引信息

    依据执行方案,思索能够的优化点

    按照能够的优化点执行表结构变更、添加索引、SQL改写等操作

    查看优化后的执行时间和执行方案

    假设优化效果不清楚,重复第四步操作

    【编辑引荐】

    快来看看,你正在运用的编程言语盛行排行榜!别被时代淘汰了_IT技术周刊第610期

    四个全新维度,优化你的HTTP功用到极致

    我们是如何将 ToB 效劳的交付才能优化75%?

    每秒几十亿实时处置,阿里巴巴超大规模 Flink 集群运维揭秘_IT技术周刊第611期

    两大春节抢票神器霸榜Github!再也不用担忧买不到票了_IT技术周刊第612期

    (责任编辑:admin)