当前位置: 首页 > news >正文

自作聪明的开发


近日查看数据库执行较长的语句。发现我们这边的开发者真是厉害。顺手拈来就是hint。



开发以为仅仅要走索引就是快的,并且刚好知道index hint能够强制走索引。所以就用上了。但是走的是bitmap index full scan,把整个索引都扫描了,然后依据索引的位图转化(bitmap conversion to rowids)成rowid,再依据索引的rowid和表的rowid一一相应。从表中取得数据(table access by index rowid)。

既然是从索引中的全部rowid找到表中的全部的数据,为啥不直接扫描整个表,直接扫描整个表不是更快吗?事实上oracle也是非常聪明的。我把index  hint去掉之后。走得是全表扫描。这就对了。

读索引是单块读,回表也是单块读。一次的单块读和多块读时间上是几乎相同的,显然多块读一次扫描的块数很多其它。

我们把表当成是一本字典,通过拼音检索或者通过部首检索,可以很高速的定位某一个字在哪页。这就好比是索引扫描,通过索引。能高速定位你检索的数据在表中的位置。

假设我们要找全部的字,假如有1w个字,显然,每个字都通过检索的方式,我们要找1w次。

如果我们一页一页的找。如果一页有20个字。总共500页,我们要找500次就能找到1w个字。

显然。找500次要比找1w次要快非常多。

至于优化的话就简单了。去掉index hint就能够了。假设表大的话就加并行就ok了。



相关文章:

  • 记录一次MySQL进程崩溃,无法重启故障排查
  • 我的IntelliJ IDEA 设置
  • shell自定义函数
  • SVN:show log问题
  • monaco editor + vue的配置
  • Centos7配置ubuntu本地仓库
  • jQuery 选择器
  • IP unnumbered interface,某个接口不编号,某个接口不分配IP地址
  • struts2中怎样处理404?
  • 一张图让你学会LVM
  • WiFi替代者LiFi首次实测结果出炉:1Gbps
  • 解读:四点让云计算引发全球变革
  • 数据蒋堂 | 开放的计算能力为数据库瘦身
  • 数据分析流程这么长,产品经理如何一人搞定?
  • 马斯克的OpenAI,究竟是如何在dota2中击败顶级人类选手的?
  • 《Java编程思想》读书笔记-对象导论
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 08.Android之View事件问题
  • axios 和 cookie 的那些事
  • Django 博客开发教程 8 - 博客文章详情页
  • es6(二):字符串的扩展
  • extjs4学习之配置
  • Java 网络编程(2):UDP 的使用
  • Java的Interrupt与线程中断
  • k8s如何管理Pod
  • Solarized Scheme
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • Vue 动态创建 component
  • 阿里研究院入选中国企业智库系统影响力榜
  • 基于HAProxy的高性能缓存服务器nuster
  • 前端性能优化——回流与重绘
  • 设计模式 开闭原则
  • 深度解析利用ES6进行Promise封装总结
  • 手写一个CommonJS打包工具(一)
  • Linux权限管理(week1_day5)--技术流ken
  • Spring Batch JSON 支持
  • 阿里云移动端播放器高级功能介绍
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • ###C语言程序设计-----C语言学习(6)#
  • #etcd#安装时出错
  • #宝哥教你#查看jquery绑定的事件函数
  • (12)Linux 常见的三种进程状态
  • (2020)Java后端开发----(面试题和笔试题)
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (js)循环条件满足时终止循环
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (论文阅读40-45)图像描述1
  • (转)C#调用WebService 基础
  • (转)菜鸟学数据库(三)——存储过程
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded