sql语句的效率优化等
来源:互联网 发布:type c数据接口 编辑:程序博客网 时间:2024/06/06 02:17
优化前的语句: ////Postgres 数据库,优化前20s,优化后200ms
SELECT c.key,
c.x_key,
c.tags,
x.name
FROM context c
JOIN x
ON c.x_key = x.key
WHERE c.key = ANY (ARRAY[15368196, -- 11,000 other keys --)])
AND c.x_key = 1
AND c.tags @> ARRAY[E'blah'];
优化后:
SELECT c.key,
c.x_key,
c.tags,
x.name
FROM context c
JOIN x
ON c.x_key = x.key
WHERE c.key = ANY (VALUES (15368196), -- 11,000 other keys --)
AND c.x_key = 1
AND c.tags @> ARRAY[E'blah'];
你能发现有啥不同之处吗?把ARRAY换成了VALUES。
我们使用ARRAY[...]列举出所有的关键字来进行查询,但却欺骗了查询优化器。
SELECT c.key,
c.x_key,
c.tags,
x.name
FROM context c
JOIN x
ON c.x_key = x.key
WHERE c.key = ANY (ARRAY[15368196, -- 11,000 other keys --)])
AND c.x_key = 1
AND c.tags @> ARRAY[E'blah'];
优化后:
SELECT c.key,
c.x_key,
c.tags,
x.name
FROM context c
JOIN x
ON c.x_key = x.key
WHERE c.key = ANY (VALUES (15368196), -- 11,000 other keys --)
AND c.x_key = 1
AND c.tags @> ARRAY[E'blah'];
你能发现有啥不同之处吗?把ARRAY换成了VALUES。
我们使用ARRAY[...]列举出所有的关键字来进行查询,但却欺骗了查询优化器。
Values(...)让优化器充分使用关键字索引。仅仅是一行代码的改变,并且没有产生任何语义的改变。
在查询语句中用到count函数时,注意尽量避免用count(*), 应该用 count(1).
- sql语句的效率优化等
- 优化sql语句执行效率的方法
- 常用优化sql语句执行效率的方法
- 优化sql语句,提升程序执行效率
- 优化sql语句提高oracle执行效率
- SQL优化语句提升执行效率
- 优化sql语句提高oracle执行效率 .
- 常见sql语句效率优化方式
- 如何优化sql语句执行效率
- 改善SQL语句的效率
- 改善SQL语句的效率
- SQl语句的效率问题
- sql语句的优化分析之一查询语句中左连接和函数效率分析比较
- [SQL]提升SQL执行效率诀窍2-优化SQL语句
- SQL Server中的SQL语句优化与效率
- SQL Server中的SQL语句优化与效率
- SQL Server中的SQL语句优化与效率问题
- SQL语句的优化
- apache防止多线程下载的配置方法
- json格式的时间显示为正常年月日的方法
- js获取系统的根路径实现介绍
- spinlock_t定义
- 收藏本站的代码
- sql语句的效率优化等
- UFLDL 教程学习笔记(三)自编码与稀疏性
- Validate Binary Search Tree
- struct semaphore定义
- linux 动态链接的使用
- Erlang多线程相关
- UFLDL 教程学习笔记(四)主成分分析
- 海量数据相似度计算之simhash短文本查找
- 模拟集成电路设计的九个层次