参考资料:
本系列博客主要参考资料有CUUG冉乃纲老师数据库教学笔记,《SQL优化核心思想》(罗炳森,黄超,钟侥著),《PostgreSQL技术内幕:查询优化深度探索》(张树杰著),排名不分先后。
1 事先说明
我们做SQL优化,其中最直截了当的利器便是索引,当然,也是一把双刃剑,既然讲到索引,我们就要讲表里的数据怎么存储的,只有这样,我们才会把索引的基本原理,为什么要建索引,怎么用索引理解清楚,也为后面的表连接做好基础。
2 数据存储
Oracle数据存储有着一整套完善的物理存储结构和逻辑存储结构,这里我们不多说,大家如果有需求,我们另开专题讲解。我们这里主要抓住三点。
(1)数据的存储是无序的,原因很简单,顺序存储耗时耗资源,也不利于存储结构优化,比如,热块(不理解就过了吧,我们临时理解为,这个是DBA要管的,DBA莫怪。。。);
(2)数据从磁盘到内存是按块读取的,不是按条读取的,原因很简单,块大小固定,读取快捷,当然,有时候是单块读,有时候多块一起读,我们会结合索引后面分析;
(3