一、数据库系统的三种数据结构
(一)逻辑结构
以逻辑抽象结构来组织数据,方便数据的查询,新增,修改和删除。
例如:索引表、树形结构。
(二)内存物理结构
以数组或者对象的方式存放在内存里,方便在内存修改和查询。
如果是C语言,一般是数组和动态内存两种。
(三)文件存储结构
把数据以一定格式组织后,存入磁盘文件里。
一般按照固定的格式来组织数据,例如数据表的每个字段占用固定的字节,对应的是某个结构体属性。
二、实际操作步骤
1、数据库用SQL语句查询。
2、数据库引擎解析SQL语句后,获得查询的表和条件。
3、调用对应的方法,读取磁盘文件的部分数据进入内存。
4、查询内存的数据,判断是否符合。
5、如果符合,把内存中数据返回。不符合返回为空。
如果是更新,还需要把内存数据写入磁盘,覆盖旧的数据,或者追加数据到磁盘文件的末尾。
三、数据库文件的跳跃读取
数据库设计时一般每部分固定字节数,查询时就能根据主键和索引,快速的跳跃读取指针,定位到目标位置读取。
例如:每条记录固定20KB,如果读取第二条记录,就能直接跳跃到位置 (起始索引 + 20 * 1024 * 1)来读取