网上很多人说oracle 11g在处理大数据分页时用rowid比rownum效率快很多,求rowid和rownum分页效率原理

但我在本地试的是 rownum比rowid执行计划效率快
2024-11-19 01:28:16
推荐回答(1个)
回答1:

rownum和rowid是两种不同的东西,不知道你如何利用rowid来分页?
rownum是返回的记录编号。rowid可理解为返回记录的实际地址。
当根据rowid访问时相当于不经查询直接取数,用rownum必须经过查询(即数据库里有查询动作)。如果已经知道了rowid再去获取数据和通过rownum计数去获取数据,肯定用rowid快。
实际上,由于oracle不支持的真正的分页查询,所谓分页,是先把数据从数据库中查询出来,然后再把对应页的数据返回给调用者,剩余的数据扔掉了。所以,这种情况下,注定用rowid不如用rownum快。