php查询oracle大量数据,Oracle 百万行数据查询优化
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num is null
可以在num上设置默认值0,,确保表中num列没有null值,然后这样查询:
select id from t where num=0
3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。
4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num=10 or num=20
可以这样查询:
select id from t where num=10
union all
select id from t where num=20
5.in 和 not in 也要慎用,否则会导致全表扫描,如:
select id from t where num in(1,2,3)
对于连续的数值,能用 between 就不要用 in 了:
select id from t where num between 1 and 3
6.下面的查询也将导致全表扫描:
select id from t where name like '%abc%'
若要提高效率,可以考虑全文检索。
7.如果在 where 子句中使用参数,也会导致全表扫描。因为SQL只有在运行时才会解析局部变量,但优化程序不能将访问计划的选择推迟到运行时;它必须在编译时进行选择。然而,如果在编译时建立访问计划,变量的值还是未知的,因而无法作为索引选择的输入项。如下面语句将进行全表扫描:
select id from t where num=@num
可以改为强制查询使用索引:
select id from t with(index(索引名)) where num=@num
8.应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如:
select id from t where num/2=100
应改为:
select id from t where num=100*2
9.应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。如:
select id from t where substring(name,1,3)='abc'--name以abc开头的id
select id from t where datediff(day,createdate,'2005-11-30')=0--‘2005-11-30’生成的id
应改为:
select id from t where name like 'abc%'
select id from t where createdate>='2005-11-30' and createdate
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
php查询oracle大量数据,Oracle 百万行数据查询优化相关推荐
- excel处理几十万行数据_EXCEL的重生!处理百万行数据竟如此简单
EXCEL处理大数据的能力一向是饱受诟病,就拿几十万行的数据来说吧,如果要在EXCEL里打开这么大的文件,少说都要几分钟,万一中间出现了卡死,又要重新来一遍,会把人折磨的不要不要的.所以为了可以处理更 ...
- 尴尬!EXCEL百万行数据量就歇菜了,还是这个方法实用
前段时间发生了一个尴尬的新闻,据英国媒体报道,英国的卫生部门公开承认由于"技术故障"问题导致新冠病例的统计数据出现了失误,遗漏了将近16000个病例,英国公共卫生部临时首席执行官迈 ...
- MySQL 数百万行数据条件查询优化
MySQL 数百万行数据条件查询优化 最近在公司实习做到一个项目,要在一个包含数百万行数据表(如果以日期来分类,大概是同一天里又十多万行数据)之中查询出日期在某个日期查询出与之相邻日期的那些行的结 ...
- win10+mysql慢_Win1064位下mysql插入百万行数据耗时问题
performance - Inserting 1 Million records is taking too much time MYSQL - Stack Overflow https://sta ...
- SQL工具性能实测:居然比Navicat还快,数百万行数据导出仅51秒
如今的SQL语言逐渐成为职场人士必备的能力.为了让更多SQL用户有一款免费又好用的SQL工具,麦聪软件于2023年1月初发布了一款Web版SQL工具SQL Studio,一经推广就赢得了众多用户的注册 ...
- linux百万行数据加分页符,百万级数据量报表全量导出
java中使用poi导出Excel详解java当初把核心处理设成Unicode,带来的好处是代码适应了多语言环境.然而由于老外的英语只有26个字母,有些情况下,一些程序员用8 位的byte处理,一不小 ...
- opencv2 取二进制数据_百亿数据量下,掌握这些Redis技巧你就能Hold全场
程序猿DD 一.Redis封装架构讲解 实际上NewLife.Redis是一个完整的Redis协议功能的实现,但是Redis的核心功能并没有在这里面,而是在NewLife.Core里面. 这里可以打开 ...
- oracle spool 分隔符_Oracle spool导出数据
Oracle spool导出数据 freezingsun 2月 7, 2014 Oracle spool导出数据已关闭评论 在工作中,有时需要将表中的数据查询出来,保存成txt格式或者csv格式,以便 ...
- excel处理几十万行数据_神奇吗?仅需4步,轻松在Excel处理300万行数据
原标题:神奇吗?仅需4步,轻松在Excel处理300万行数据 这场软件PK,是时候分出胜负了,今天就是大结局.有必杀技在手,Excel已经看到了胜利的曙光. 在99%的人眼中,Excel能处理的最大数 ...
最新文章
- 2018年科技公司融资纪录十大排行榜!中国四家公司上榜
- Android Studio 快捷键使用说明
- nyoj 61 传纸条(一) (双线动归)nyoj 探寻宝藏
- CodeForces - 1295B Infinite Prefixes(数学)
- 四、物理优化(1)范式化
- 生产者消费者之阻塞队列版本
- 2018级软件秋季总结
- AndroidStudio_安卓原生开发_Android开发中界面调试很别扭? 设置应用屏宽屏高_应用大小_design_width_in_dp---Android原生开发工作笔记140
- linux 下 sudo 指令不需要输入密码的配置
- \r \n \r\n的区别
- elastic-job和xxl-job实践对比
- 【备忘】【No37】LAMP兄弟连李明老师讲Linux
- python语言mooc作业_计算机基础(Ⅱ)Python语言-中国大学mooc-试题题目及答案
- 金仓数据库学习笔记(一)
- Python实现身份证号码合法性校验
- Wireshark抓取VLAN包
- 个人如何申请注册公司邮箱?企业邮箱注册申请流程详解
- 软件工程之高质量代码(编码规范)
- 程序员必知的 89 个操作系统核心概念
- R语言绘制heatmap热图
热门文章
- Swift5.x使用纯代码创建NavigationTab控制器设置启动图Wb第1部分
- 计算机信息安全专业欧洲排名,美国大学信息安全专业排名TOP10一览 加州大学伯克利分校居首...
- python 变量类型注释_变量类型、命名规则及代码注释
- python获取系统当前时间并转utc时间为绝对秒数_用Python将datetime.date转换为UTC时间戳...
- python第三章上机实践_《机器学习Python实践》读书笔记-第三章
- Android开发之微信支付获取签名小工具分享
- Android文件存储方式之openFileOutput与获取数据openFileInput
- 获取手机信息(UIDevice、NSBundle、NSLocale)
- iOS Cookie学习(NSHTTPCookieStorage的使用)
- java达达租车接口_Java第一个项目——达达租车系统v1