MyBatis RowBounds与使用rownum和嵌套子查询的Oracle分页查询(MyBatis RowBounds vs Oracle pagination query using rownum and nested subquery)
我想知道下面哪个在执行100k +记录的查询方面表现更好
1)Oracle的分页
SELECT * FROM ( SELECT id, col1, col2, rownum rn FROM ( SELECT /*+ first_rows(50) */ id, col1, col2 FROM table1 ORDER BY id DESC ) WHERE rownum <= 50 ) WHERE rn >= 20;
2)使用MyBatis RowBounds进行分页 。
MyBatis RowBounds使用普通的JDBC,并在启动select后跳过前20条记录,然后获取下一个30(pagesize)。
另外,随着更多行需要跳过页码的增加,MyBatis方法会变慢吗?
I want to know which of the below performs better in terms of time to execute query with 100k+ records
1) Oracle's Pagination
SELECT * FROM ( SELECT id, col1, col2, rownum rn FROM ( SELECT /*+ first_rows(50) */ id, col1, col2 FROM table1 ORDER BY id DESC ) WHERE rownum <= 50 ) WHERE rn >= 20;
2) Pagination using MyBatis RowBounds.
MyBatis RowBounds uses normal JDBC and after firing the select it skips the first 20 records and then fetches the next 30 (pagesize).
Also, will the MyBatis approach become slower as the page number increases as more rows needs to be skipped?
原文:https://stackoverflow.com/questions/11185705
最满意答案
更改
.strip1
显示以display: table;
。 您可能还想更改.data
以display: table-row;
。 将.data上的diaplay设置为table-row将允许您删除高度和宽度声明。编辑:添加了片段
body{ padding:0; } .strip2 { background-color: #FFFFFF; height: 65%; position: absolute; top: 25%; left: 0; width: 100%; text-align: center; } .strip3 { background-color: green; height: 10%; position: absolute; bottom: 0px; left: 0; width: 100%; } .strip1 { background-color: red; height: 25%; position: absolute; top: 0px; left: 0; width: 100%; display:table; } .data { background-color: #00337C; display: table-row; height: 100%; /* you can remove height declaration if set to display:table-row */ width: 100%; /* you can remove width declaration if set to display:table-row */ } .data_element { color: #FFFFFF; font-size: 30px; width: 100%; height: 100%; display: table-cell; vertical-align: middle; text-align: center; font-size: 30px; } .data_element.dataA { width: 20%; } .data_element.dataB { width: 50%; } .data_element.dataC { font-size: 20px; }
<div class="container"> <div class="strip1"> <div class="data"> <div class="data_element dataA">A</div> <div class="data_element dataB">B</div> <div class="data_element dataC">C</div> </div> </div> <div class="strip2"></div> <div class="strip3"></div> </div>
Change
.strip1
display todisplay: table;
. You may also want to then change.data
todisplay: table-row;
. Setting the diaplay on .data to table-row will allow you to remove the height and width declarations.Edited: Added snippet
body{ padding:0; } .strip2 { background-color: #FFFFFF; height: 65%; position: absolute; top: 25%; left: 0; width: 100%; text-align: center; } .strip3 { background-color: green; height: 10%; position: absolute; bottom: 0px; left: 0; width: 100%; } .strip1 { background-color: red; height: 25%; position: absolute; top: 0px; left: 0; width: 100%; display:table; } .data { background-color: #00337C; display: table-row; height: 100%; /* you can remove height declaration if set to display:table-row */ width: 100%; /* you can remove width declaration if set to display:table-row */ } .data_element { color: #FFFFFF; font-size: 30px; width: 100%; height: 100%; display: table-cell; vertical-align: middle; text-align: center; font-size: 30px; } .data_element.dataA { width: 20%; } .data_element.dataB { width: 50%; } .data_element.dataC { font-size: 20px; }
<div class="container"> <div class="strip1"> <div class="data"> <div class="data_element dataA">A</div> <div class="data_element dataB">B</div> <div class="data_element dataC">C</div> </div> </div> <div class="strip2"></div> <div class="strip3"></div> </div>
相关问答
更多-
父DIV中的高度不同(Different height in parent DIV)[2024-04-30]
好的。 这里发生了一些事情。 首先,您确实需要划分导航中的项目。 我已经使用了divs,并且我已经将它们全部float: left通过类item float: left了。 这样就完成了两件事:它将所有物品放在一行上,然后将它们的容器包裹起来,这样你的“下拉列表”的大小就适合下拉列表中的最大项目。 其次,你需要从.navigation删除overflow: hidden 。 这将允许元素(在这种情况下为.item元素)延伸到此元素的边框之外。 第三,调整边距和填充。 我在.navigation上保留了5px ... -
在其他div后面显示
(Displaybehind other div)[2023-08-21]虽然你可以使用绝对位置来定位每个内部div,但是我更有意义的是绝对定位文本而不是框。 考虑: HTMLTextCSS #parent{ width:105px; height:105px; border:1px solid blue; margin:0; ...............经过认真的挖掘(没有开玩笑),我找到了答案。 这是一个Chrome错误,请在此处详细说明: https : //code.google.com/p/chromium/issues/detail? id = 341310 最后的帖子给了我一个主角: https : //github.com/philipwalton/flexbugs/issues/28 我不会在这里给出代码,因为rinick关于github问题的解释非常清楚。 在我的例子中,我在.table-wrapper之前使用以下css创建了一个新的包装 ...好吧,好像在增加position: relative; 我的.scrollable修复了这个问题。 如果这不是这样做的方式,欢迎提供更多答案。 Ok, seems like adding position: relative; to my .scrollable fixed the issue. If this is not the way to do it more answers are welcome.更改.strip1显示以display: table; 。 您可能还想更改.data以display: table-row; 。 将.data上的diaplay设置为table-row将允许您删除高度和宽度声明。 编辑:添加了片段 body{ padding:0; } .strip2 { background-color: #FFFFFF; height: 65%; position: absolute; top: 25%; left: 0 ...这是关于height: 100%的常见误解height: 100% 。 来自MDN : 百分比是根据生成的包含框的块的高度来计算的。 如果包含块的高度没有明确指定 (即,它取决于内容高度),并且此元素没有被绝对定位,则该值计算为auto。 根元素上的百分比高度与初始包含块相关。 你的问题的一个解决方案可能是绝对定位。 设置position: relative对于你的容器,绝对放置孩子。 设置top: 0; bottom: 0; top: 0; bottom: 0; 在他们将他们拉伸到容器的高度。 快速演示 ...给你的包装div一个overflow: auto; 所以它正确地包含了浮动的孩子,就像这样: #galleryBox { overflow: auto; /* Only addition to your current styles */ width: 650px; background: #fff; margin: auto; padding: 5px; text-align: center; } 这不需要HTML更改,只是风格应该做的。 Give your wrapper di ...当父有display:block;时,将父
中的子垂直居中。(Vertically center a childwithin a parentwhen parent has display: block;)[2021-09-19]一种方法是使用这些CSS规则: .parent { display: block; width: 100%; height: 300px; position: relative; } .child { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); } 请参阅完整的解决方案: http : //codepen.io/shippin/pen/yMKMpR 另请 ...垂直居中一个高度可变的div和display:none属性(Center vertically a div with variable height and display:none property)[2021-10-26]
如果将.white_content更改为此值,则它会垂直居中 小提琴演示 .white_content { display: block; position: absolute; left: 36%; width: 28%; height: auto; top: 50%; padding: 16px; background-color: #ffffff; z-index: 1002; overflow: auto; tr ...使用定位(父亲的亲戚,孩子的绝对)而不是显示属性: #outerdiv { height: 100%; width: 100%; position:relative; } #innerdiv { width: 100%; height: 20%; background-color: red; position:absolute; bottom:0; } jsFiddle示例 Use positioning (relative on the p ...相关文章
更多- MyBatis XML 配置详解
- MyBatis Java API详解
- mybatis批量插入使用oracle序列做为主键出现"ORA-02287: 此处不允许序号"的解决方案
- 源码解读Mybatis List列表In查询实现的注意事项
- oracle
- MyBatis 动态 SQL详解
- 快速了解mybatis
- 常用HQL(Hibernate Query Language)查询
- solr学习笔记二-------solr query查询的参数
- oracle查询问题
最新问答
更多- 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
- 如何通过引用返回对象?(How is returning an object by reference possible?)
- 矩阵如何存储在内存中?(How are matrices stored in memory?)
- 每个请求的Java新会话?(Java New Session For Each Request?)
- css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
- 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
- xcode语法颜色编码解释?(xcode syntax color coding explained?)
- 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
- 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
- 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
- 西安哪有PLC可控制编程的培训
- 在Entity Framework中选择基类(Select base class in Entity Framework)
- 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
- 电脑二级VF有什么用
- Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
- 金华英语角.
- 手机软件如何制作
- 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
- 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
- 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
- Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
- 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
- python的访问器方法有哪些
- DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
- 在Ruby中对组合进行排序(Sorting a combination in Ruby)
- 网站开发的流程?
- 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
- 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
- 透明度错误IE11(Transparency bug IE11)
- linux的基本操作命令。。。