特定场景下SQL的优化
1.大表的数据修改最好分批处理。
1000万行的记录表中删除更新100万行记录,一次只删除或更新5000行数据。每批处理完成后,暂停几秒中,进行同步处理。
2.如何修改大表的表结构。
对表的列的字段类型进行修改,改变字段宽度时还是会锁表,无法解决主从数据库延迟的问题。
解决办法:
1.创建一个新表。
2.在老表上创建触发器同步老表数据到新表。
3.同步老表数据到新表。
4.删除老表。
5.将新表重新命名为老表。
可以使用命令,完成上面的工作:
pt-online-schema-change –alter=”modify c varchar(150) not null default ‘’” –user=root –password=root d=sakia, t=表名 –charset=utf8 –execute
3.优化not in 和 <> 的查询
例子:
select customer_id ,firstname,email from customer where customer_id
not in (select customer_id from payment)
会多次查询payment 表,如果payment表记录很多效率将很低。
改写后的sql
select a.customer_id ,a.firstname,a.email from customer a left join payment b
on a.customer_id=b.customer_id where b.customer_id is null;
4.对汇总表的优化查询
select count(1) from product_comment where product_id=999;
创建汇总表:
create table product_comment_cnt (product_id ,cnt int);
select sum(cnt) from (
select cnt from product_comment_cnt where product_id=999 union all
select count(1) from product_comment where product_id =999 and timestr>date(now())
) a
每天定时更新汇总表,再加上当天的数据。
转载于:https://www.cnblogs.com/yg_zhang/p/5936034.html
特定场景下SQL的优化相关推荐
- 特定场景下Yolo改进算法:Poly-Yolo
论文名称:Poly-YOLO: higher speed, more precise detection and instance segmentation for YOLOv3 论文地址:https ...
- 智能音箱场景下的性能优化
QCon是由InfoQ主办的综合性技术盛会,今年是Qcon举办的第10个年头,半吊子全栈工匠有幸作为演讲嘉宾分享一个近两年来的实践经验--智能音箱场景下的性能优化,隶属于曾波老师出品的"场景 ...
- [Camera Drv]开video dynamic framerate,特定场景下video encode时会闪屏 - MTK物联网在线解答 - 技术论坛
[Camera Drv]开video dynamic frame rate,特定场景下video encode时会闪屏 1. 开 video dynamic frame rate ,环境 BV 在 d ...
- 亿级数据量场景下,如何优化数据库分页查询方法?
摘要:刷帖子翻页需要分页查询,搜索商品也需分页查询.当遇到上千万.上亿数据量,怎么快速拉取全量数据呢? 本文分享自华为云社区<大数据量性能优化之分页查询>,作者: JavaEdge. 刷帖 ...
- etcd 在超大规模数据场景下的性能优化
2019独角兽企业重金招聘Python工程师标准>>> 作者 | 阿里云智能事业部高级开发工程师 陈星宇(宇慕) 概述 etcd是一个开源的分布式的kv存储系统, 最近刚被cncf列 ...
- 海量小文件场景下训练加速优化之路
作者:星辰算力平台 1. 背景 随着大数据.人工智能技术的蓬勃发展,人类对于算力资源的需求也迎来大幅度的增长.在腾讯内部,星辰算力平台以降本增效为目标,整合了公司的GPU训练卡资源,为算法工程师们提供 ...
- 特定场景下取代if-else和switch的方式
look-up表代替if-else 比如某平台的信用分数评级: 超过700-950,信用极好, 650-700信用优秀, 600-650信用良好, 550-600信用中等, 350-550信用较差. ...
- 高并发场景下的httpClient优化使用
https://www.cnblogs.com/bethunebtj/p/8493379.html 1.背景 我们有个业务,会调用其他部门提供的一个基于http的服务,日调用量在千万级别.使用了htt ...
- 关于如何解决特定场景下WPF4.0中“XamlWriter.Save序列化限制”问题的一种思路
问题背景 笔者最近使用ArcGIS Server WPF API 开发一个能够实现所见即所得的基于Xaml的图层符号编辑功能.这个功能主要目的能够让用户以Xaml的形式来定义图层符号,并能够 ...
最新文章
- JobTracker节点后台线程之RetireJobs
- springboot项目中session和cookie
- MySQL为表的所有字段添加数据
- 【Qt】Qt登录对话框(设计器实现)
- 大括弧之战 代码风格
- Embedding技术在商业搜索与推荐场景的实践
- Linux安装yum过程(超详细)
- 2020软件测试面试题汇总,看完BATJ面试官对你微微一笑!(内含答案)
- oracle磁盘满了怎么办,ORACLE磁盘空间占满解决
- pr基本图形模板无法使用_Pr基本图形板块教程 Premiere Pro CC Essential Graphics
- 《经济学通识》二、管制的愿望与结果
- Linux vmwaver下安装cenos联网时出现 network is unreachable问题
- bind dlz mysql rpm_MySQL+BIND-dlz 实现智能DNS
- 计算机操作系统:处理机调度相关
- linux中tail命令的作用,Linux中tail命令实例
- java有关的论述_中国大学MOOC: 以下有关JAVA线程的论述,正确的是()。
- 天馈线测试仪具备什么功能
- kafka实践(十五): 滴滴开源Kafka管控平台 Logi-KafkaManager研究
- Infiniband-IB网络
- easyExcel 导入Excel数据
热门文章
- 如何判断DropDownList中是否包含某个项
- js 不同页面间传递值并取值
- [转]高颜值、好用、易扩展的微信小程序 UI 库,Powered by 有赞
- Docker、Kubernetes、Apache Mesos 之争 | 一个与传说不同的故事
- ObjC block入门
- IPv6相比IPv4在那些方面做出了改进?IPv4 to IPv6过渡的三种tunnel技术各自的特性...
- Linux中如何杀掉僵尸进程
- [转]HTTP请求模型和头信息
- aix6.1安装oracle 10g总结
- ExtJS 4.1更新