专栏首页带你回家数据库默认排序

数据库默认排序

目标:理解oracle,mysql,sqlserve 三个数据库中的排序效率问题!

Oralce:

oracle对无order by的语句返回的结果不进行排序,oracle此时的处理方式是按照数据的物理存储顺序来读取数据。因为rowid是每行数据的地址,所以有时候看起来会像是使用rowid排序的。但这个顺序是可能被打乱的,在表的数据被删除后,rowid会被新插入的数据占用。所以一个无order by查询结果看起来也可能是个杂乱无章的。 oracle的数据库实现就一个原则,怎么快怎么效率高就怎么来。大多数情况下不需要排序还非得按主键排序这不是浪费资源么?

这和oracle的表结构是有关系的,因为oracle的表结构默认是按堆存放的。按堆存放的意思就是,随便存,存的时候就是乱序的。如果你建表的时候就是建的按索引组织的表,那么它返回的时候就会默认排序了。

任何时候要排序就要加上order by

参考博客:https://blog.csdn.net/indieinside/article/details/45912911

Mysql:

Mysql 有默认排序的 如果要增加查询效率可以 在后面加上 ORDER BY NULL

sqlserver:

在不指定Order by的情况下,sqlserver会根据执行计划实际查询方式来得到数据 ,默认不排序

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 5分钟面试指南(第二十九篇 mysql不可不知其三)

    本部分我们会为大家提供一些python初级工程师在面试过程中遇到的常见的面试题目,期望达到的效果:

    还是牛6504957
  • 5分钟面试指南(第二十七篇 mysql 不可不知其一)

    本部分我们会为大家提供一些python初级工程师在面试过程中遇到的常见的面试题目,期望达到的效果:

    还是牛6504957
  • PHP+Mysqli 事务处理

    php+mysqli 事物处理 事物就是如果两条或多条数据只要有一条SQL语句错误,那么已经执行成功的执行回滚操作,把已经生效的SQL语句回滚为原来的值 比如A...

    Alone88
  • 亿级用户分布式存储,这些方案你都会了吗?

    原文:https://segmentfault.com/a/1190000019460946

    JAVA葵花宝典
  • 5分钟面试指南(第二十八篇 mysql不可不知其二)

    本部分我们会为大家提供一些python初级工程师在面试过程中遇到的常见的面试题目,期望达到的效果:

    还是牛6504957
  • 8 种常被忽视的 SQL 错误用法

    分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time...

    芋道源码
  • 5分钟面试指南(第二十六篇 关于存储,你知道多少?)

    本部分我们会为大家提供一些python初级工程师在面试过程中遇到的常见的面试题目,期望达到的效果:

    还是牛6504957
  • 5分钟面试指南(第三十篇 mysql不可不知其四)

    本部分我们会为大家提供一些python初级工程师在面试过程中遇到的常见的面试题目,期望达到的效果:

    还是牛6504957
  • 腾讯大牛告诉你,如何通过知识管理让工作更轻松

    说到知识管理,大多数人的第一反应是写总结,输出文档。这个想法不全错,但是知识管理不等同文档管理。你有没有发现,很多人的日常知识管理,就是把写得很有道理或是看了...

    腾讯大讲堂
  • 消息队列MQ

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    chenchenchen

扫码关注云+社区

领取腾讯云代金券