oracle与pg数据库差异

最近用pg数据库,发现对于单张千万上亿数据量的大表,加上limit后查少量数据会很快,但是在oracle上就没有什么效果,不加limit也可以很快的查出来。请问有没有人知道这个地方的底层原理。

  1. 你在oracle里怎么用的limit?
  2. 你用的什么界面工具?有些oracle工具(比如plsql developer)会默认加上 fetch first n row only或者强行加hint指定执行计划以只获取前n行进行展示,当继续往下展开时还是会继续从数据库中获取数据;而某些pg数据库的界面工具并没有此类优化。
  3. 你只说了是单张千万上亿的表,但比较性能不能只看这一个,比如数据库是安装在什么样配置的硬件上,还有给数据库分配的资源是否有差异,表中的数据是否已经经过了统计分析,碎片率怎么样,等等