① MyBatis 逻辑分页和物理分页的区别是什么
逻辑分页是先查出来,然后利用代码去取需要的部分;物理分页是利用sql自带的limit去实现的,本身查询出来的数据是就算分页好的
② 什么是分页
http://ke..com/view/159980.htm
分页 (pagination) 一种自动分页机制,可以将 ASP.NET 移动 Web 窗体中的内容分割成一组组较小的页进行呈现,以适合于特定的设备。该机制还呈现可用于浏览到其他页的用户界面元素。 分页:将一个页面分成两个或两个以上的页面。
[编辑本段]什么是分页?
无论你的NT服务器的内存有多大,它总是显得不够充足。当物理RAM从低端开始运行时,Windows NT使用了分页文件Pagefile.sys。为了运行不同的进程和应用程序,Pagefile.sys给物理内存分配了一些空间。在这些空间内允许交换数据页。 显然,系统在文件系统缓存中查找数据而不是在驱动器上搜索数据会提高系统的性能。太多的搜索操作会使处理器停顿下来。这就是短语“买更多的内存”成为计算机时代的陈词滥调的原因之一:RAM是你的朋友。管理内存可使你的“朋友”更高效。 Windows NT下的Windows Task Manager ([Ctrl][Alt][Delete] | Task Manager)是一个可以为访问内存使用情况提供快捷重要信息的察看工具。考虑物理内存的大小并计算MEM Usage计数器的值,Memory Usage History提供了内存活动的即时情况。正如图2.2.A所示,把CPU Usage计数器和CPU Usage History与MEM Usage计数器一作比较,就可以简单地得到性能的总的评价。如果你必须决定是否要立刻启动 Diskperf以进一步调查分页过多问题那就非常便利了。 Windows NT的分页文件可以通过Control Panel |System | Performance 标签| Virtual Memory进行管理。在这里,你可以控制分页文件的几个设置(包括大小和区域)。显然,你可以允许系统对它进行处理,但是为了获得最佳配置还是使用Vitual Memory Manager (VMM)为好。 2.2.2 Windows NT分页文件的基本原则 Windows NT最初通过在物理RAM的数量上加上12MB以设定开始的分页文件大小。这12MB考虑到在系统故障时分页文件内容可被倾倒到一个日志中以防万一。如果看见了“停止”框和接着出现蓝屏死机,你就在操作中遇上了这个问题。如果开始的分页文件的大小小于这个数(物理RAM的数量上加上12MB),就会开始收到Running Out Of Memory消息。 Windows NT操作系统和其应用程序使用了大约10MB的RAM。所以,应该从物理RAM的数量上减去这个值。这会给你充分的回旋余地决定你的服务器的内存要求。 Windows NT要求分页文件的最小值为2MB。如果分页文件太小或者根本不存在,启动时就会出现警告消息。 分页文件应该总是遵循RAM的最小值+12的规则。在任何情况下,分页文件都不能比服务器中的RAM的大小小。如果系统有32 MB的物理RAM,加上12MB后分页文件总的大小就是44MB。显然,分页文件越大于好。但是,我的意思是增加对物理RAM的投资,而不是简单地增加分页文件的大小。如果没有足够的RAM,驱动器就会花太多的时间对分页文件进行读写。这只会降低你的服务器的速度,如果你不得不重启服务器来清除I/O请求,甚至会导致服务器不能工作。而如果因为这个原因需要重启机器,那么可能就会有第二次。 默认的12MB RAM足以在必要时把分页文件的内容清除。小的分页文件限制了可以存储的内容并且可能耗完为应用程序保留的虚拟内存。如果RAM不足,就会有更多的分页,这反过来为驱动器增加了额外的负担,从而降低了系统的响应速度。在这样的情况下,Windows NT要求分页文件的最小值等于除了系统启动时1MB虚拟内存之外的物理RAM的大小,以便能够把调试信息写到一个文件上。 如前所述,分页文件的最大值和最小值在Virtual Memory对话框中指定。根据应用程序,分页文件会增大和缩小。当系统运行着时,不能压缩或维护分页文件。但是,使用各种第三方软件包如Diskeeper可对分页文件进行维护。
③ Mybatis分页对比MybatisPlus分页
Mybatis使用内存分页
Mybatis使用RowBounds对象进行分页,它是针对ResultSet结果集执行的内存分页,而非物理分页。可以在sql内直接书写带有物理分页的参数来完成物理分页功能,也可以使用分页插件来完成物理分页。
分页插件的基本原理是使用Mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的sql,然后重写sql,根据dialect方言,添加对应的物理分页语句和物理分页参数。
————————————————
MybatisPlus是物理分页
基本步骤是:
1 原生SQL解析
2 判断有无page分页对象。没有对象就直接进行SQL操作,有对象就继续分页解析
3 count语句优化。根据SQL条件进行count优化,这点不同于传统的 select count(1) from (你的 业务 SQL) 做下简单的封装,详细源码可以自己看,或者打印出执行的SQL可以清楚的看到
4 通过count数量和之前前端传递来的分页pageNum和pageSize对SQL进行拼接
5最终执行拼接完整的SQL实现分页处理
总结:mybatis的是内存分页,全查出来丢在内存中,这样子很不好! 现在大面积使用的插件MybatisPlus是物理分页,先查询总数(不像网上很多人说的只是简单外包一层计算count),再根据分页参数瓶装SQL然后执行分页查询
④ 高斯200支持什么分页
物理分页和逻辑分页。1.物理分页 :使用数据库本身提供的分页操作来完成数据查询,查询到的就是当前页的信息。例如mysql可以使用limit oracle数据库可以使用rownum来完成。这种方案的优点是性能比较好,但是它存在不通用问题。
2.逻辑分页 :它是利用数据库的游标来操作 (将数据库所有数据都查询出来,存储在内存中),性能比较低,但是它通用。分页实现可以使用ajax分页,也可以使用服务器端分页,它们原理是一样的。