oracle分页查询加总数,oracle count 百万级 分页查询记要总数、总条数优化
oracle count 百万级 分页查询记录总数、总条数优化
oracle count 百万级 查询记录总数、总条数优化
最近做一个项目时,做分页时,发现分页查询速度很慢,分页我做的是两次查询,一次是查询总数,一次是查询分页结果
/** 查询总记录数 **/
SELECT
COUNT(id)
FROM
USER
order by
id
/** 查询结果集 **/
select
*
from
( select
row_.*,
rownum rownum_
from
( select
id ,
user_number,
user_name,
user_password,
sex,
Registered_time,
last_login_time,
post
from
USER u
order by
u.id) row_
where
rownum <= ?
)
where
rownum_ > ?
user表中的记录是128万多条,这个是没有查询条件时的查询,也就是用户刚刚进入模块时的查询,发现查询时间是2566ms~2152ms之间,单独执行每条语句,发现第一条的执行时间在2000ms以上,在PL/SQL中执行的结果也证实了我的判断。所以要对select count语句进行优化。
在网上找了很多优化方案,大多不尽人意,(分表的方式听上去不错,不过由于单表是历史原因,这里就不作考虑)。最后找到一个比较令人满意的答。就是在语句中加入 /*+ROWID(USER)*/或者/*+ INDEX(USER ID) */ 来提高查询效果。
听说这个就是强制使用索引统计结果?如果有哪位大虾能把原理详细告诉我,请来多多指点!
SELECT /*+ROWID(USER)*/ count(*) FROM USER t
或者
SELECT /*+ INDEX(USER ID) */ count(*) FROM USER t
使用后,单条统计总数的查询在800ms左右,分页查询结果基本在900ms~950ms之间,基本在一秒之内,达到了当初设计需求。
当然,这个是没有加查询条件的,当把查询条件加入后,不管前面加不加强制索引,结果时间都在2000ms之间,所以,如果要进行有条件的查询,就要在where条件中进行优化。特别注意条件字段查询前后顺序。
具体优化请参考
1.浅析Oracle语句优化规则
http://www.cnblogs.com/Automation_software/archive/2011/01/21/1940883.html
oracle分页查询加总数,oracle count 百万级 分页查询记要总数、总条数优化相关推荐
- ASP.NET 百万级分页查询(Oracle)
包括ASP.NET和ASP.NET AJAX + JSON两个DEMO,最低耗时35ms左右(AJAX+JSON).百万级数据库查询分页,使用Oracle 存储过程.Asp.net 2.0 + ,Or ...
- ASP.NET 百万级分页查询续
介绍: 包括ASP.NET和ASP.NET AJAX + JSON两个DEMO,最低耗时35ms左右(AJAX+JSON). 百万级数据库查询分页,使用Oracle 存储过程. 代码生成的案例: As ...
- 解决Mybatis-Plus或PageHelper多表分页查询总条数不对问题
文章目录 前言 一.问题说明 1.引入依赖 2.Mybatis-Plus配置 3.创建mapper层 4.编写xxxMapper.xml文件 5.测试一(不传任何条件,只分页) 5.1.结果总结 5. ...
- 使用redis缓存加索引处理数据库百万级并发
使用redis缓存加索引处理数据库百万级并发 前言:事先说明:在实际应用中这种做法设计需要各位读者自己设计,本文只提供一种思想.准备工作:安装后本地数redis服务器,使用mysql数据库,事先插入1 ...
- mysql查询优化count(*)-查询记录总条数(二)
前文提到查询记录总条数有时候会使用到where来限定查询范围. 从优化原则来说,where可能会降低效率. 但是如果where设定的合理,符合一定条件,也可以实现查询优化效果. 如果条件是索引列,那么 ...
- mysql 查询条数优化_MySQL优化总结-查询总条数
1.COUNT(*)和COUNT(COL) COUNT(*)通常是对主键进行索引扫描,而COUNT(COL)就不一定了,另外前者是统计表中的所有符合的纪录总数,而后者是计算表中所有符合的COL的纪录数 ...
- mysql 查询数据条数_MySQL优化总结-查询总条数
1.COUNT(*)和COUNT(COL) COUNT(*)通常是对主键进行索引扫描,而COUNT(COL)就不一定了,另外前者是统计表中的所有符合的纪录总数,而后者是计算表中所有符合的COL的纪录数 ...
- mysql查询语句ppt,mysql查询表中数据总条数的语句怎么写
sql查询表中数据总条:SELECT COUNT(*) FROM 表名称.count(*)代表着抄数据统计的总数.例子本例返回 "Persons" 表中的行数:SELECT COU ...
- ruoyi框架分页总条数total返回错误解决方案
ruoyi框架分页总条数total返回错误解决方案 原因:因为自己重新定义了分页方法,如: 就会出现总数返回数据错误问题 总数会变成当前页条数的 这是分页的核心,这里传过来的list 没有 insta ...
最新文章
- php根据不同的条件替换一段html代码中的不同的img标签
- aspnet_merge.exe”已退出,代码为1的错误的解决方法
- Jupyterlab 插件安装后侧边栏找不到的解决
- php页面增加自选项,php - 添加自定义设置选项卡,Woocommerce的设置客户列表内容 - SO中文参考 - www.soinside.com...
- 并发译文翻译计划(二)
- c#中contextMenuStrip与datagridview使用CellMouseDown事件及treeview使用mousedown事件
- 两圆相交求面积 hdu5120
- Android屏幕大小和密度对照表,以及px、dip、sp等像素单位的解释
- jquery的全选代码
- Java高并发编程详解系列-不可变对象设计模式
- 易错丨Oracle 每日一题系列合集
- 小米9 Pro 5G评测:史上最低价5G手机
- c#文件分割与合并 part 1 (转自互联网)
- 以下数据库收录外文文献全文的有_除了SCIHUB,这十大外文文献下载数据库也应该一试!...
- 职场泥潭 | 这样的IT公司绝对不宜久留
- 医院信息系统基本功能规范---医疗保险接口功能规范
- vue解析excel文件(使用xlsx)
- [Erlang危机](3.1)常见过载情景
- 买一台服务器到底能干什么?可用于这7点!
- springfox集成教程
热门文章
- [渝粤教育] 中国地质大学 金融保险业会计 复习题
- 【渝粤题库】陕西师范大学202241 金融市场学 作业(专升本)
- 【渝粤题库】广东开放大学 人力资源管理(本科) 形成性考核
- php manager iis 8,PHPManager2下载
- php中可以实现分支,PHP中的分支及循环语句
- LaTeX的编译速度优化方案
- c语言汉字属于什么类型_狠准!你的名字属于什么类型 就是什么性格
- typora导出word指定样式_(二)最简洁的Markdowd编辑器:Typora
- excel转las文件_这3种Word、Excel格式不变的互转方法,实在太好用了
- 【数字信号处理】复数的另一种思考之平均风向测量(Python实现)