前言:众所周知,数据库就是一个将各类数据,以表格的形式存储的,但是看似如此简单的功能它是真的简单吗?我们和直接使用简单的Excel建立的表格有区别吗?如果有在哪里?...PS:本文以常用的MySQL为例
磁盘IO
在不考虑缓存等机制(数据IO)的前提下,首先我们知道,对于用户来说他使用数据时,会和其内部的存储设备,一般为磁盘(当然也有固态之类的更高效的存储设备,但是数据库一般是部署在服务端...,而服务端的主机或集群,考虑安全、可靠和成本等问题一般是使用磁盘),交互寻找和提取对应的数据....为何更高的效率,一定要尽可能的减少系统和磁盘IO的次数
数据的存储
现在我们知道了数据库是数据文件的,但是又有一个新问题,那他是如何管理这些不同的page的呢?
链表?线性遍历
二叉搜索树?...其中, InnoDB 这种用户数据与索引数据在一起索引方案,叫做聚簇索引
当然, MySQL 除了默认会建立主键索引外,我们用户也有可能建立按照其他列信息建立的索引,一般这种索引可以叫做辅助(普通)索引