网站首页 > 技术文章 正文
SQL 优化技巧(接上)
6、能用union all就不用用union,因为union会对数据进行排序,会影响效率,如:
select id from users where id=1
union
select id from users where id=2;
替换为:
select id from users where id=1
union all
select id from users where id=2;
7、where 子句中含in 枚举字段,枚举类型太多,如oracle最大支持1000个值, 如:
select id from users where id in (1,2,3,4,5,6,7,...,1000);
如果值比较固定,可以将数据存入数据字典表(data dictionary table),然后按照第五点优化,用exists替换(也可以join table)。
8、select 中尽量不用使用子查询,如:
select id
,user_id
,(select user_name
from users u
where a.user_id=u.id) as user_name
from acount where a.id=1;
可以替换为join表:
select a.id
,a.user_id
,u.user_name user_name
from acount a left join users u on a.user_id=u.id where a.id=1;
9、少用distinct去重,例如账户表中有很多用户,按distinct处理,会对原始数据排序,默认升序;如:
select distinct a.user_id
from acount;
替换为:
select a.user_id,count(1)
from acount
group by user_id;
10、大表的数据初始化,尽量不要先建索引,可以先把数据导入数据库中,然后初始化索引。
本篇文章就先介绍到这里,如果大家遇到其他问题,欢迎在底下留言:包含但不限于数据导入导出/SQL性能问题/千万级数据优化/亿级数据优化
编:昊几居
作者介绍:资深大数据库开发工程师,专注数据治理方向。
猜你喜欢
- 2024-11-06 从 TPCH 测试学习性能优化技巧之 Q6
- 2024-11-06 Oracle_57、自定义函数经典案例2 Oracle_57
- 2024-11-06 自主创新理论的新一代国产数据库,性能远超Oracle
- 2024-11-06 Oracle 和 MySQL 的 JDBC 到底有多慢?
- 2024-11-06 4月数据库流行度排行榜 MySQL能否追上Oracle
- 2024-11-06 大数据与关系型数据库的关系 大数据 关系型数据库
- 2024-11-06 一个简单的例子,告诉你数据库和大数据的关系
- 2024-11-06 大数据 oracle 大数据技术
你 发表评论:
欢迎- 09-0613.通过Excel导出数据库中的维值_数据库exp导入导出数据
- 09-06做数据分析时,SQL需要达到以下水平
- 09-06Java开发指南:JDK21下载、安装及目录解析,轻松开启编程之旅
- 09-06hive存储过程_hive存储过程环境变量
- 09-06Maven常用命令_maven常用命令有哪些
- 09-06JDK从8升级到21的问题集_jdk更新到几了
- 09-06Oracle狂刷存在感 NRF展会惊艳四座
- 09-06哪些软件支持UDI标签的生成与验证
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)