网站首页 > 技术文章 正文
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 大数据技术
你 发表评论:
欢迎- 618℃几个Oracle空值处理函数 oracle处理null值的函数
- 611℃Oracle分析函数之Lag和Lead()使用
- 599℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 596℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 592℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 583℃【数据统计分析】详解Oracle分组函数之CUBE
- 573℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 560℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)