一、存储介质
磁盘:由磁道、扇区、扇面、柱面组成。
格式化:就是把磁盘分成指定大小的块(4kb,8b)并编号。
二、数据库文件的存储
数据库文件以“块”的方式存储在磁盘“块”上,更小的“块”能够提高磁盘的利用率
三、SqlServer
1)在SQL Server中,数据存储的基本单位是页,页的大小是 8 KB,则1MB的数据文件 有 128个 页(1MB=128*8KB)
2)每页的开头 96 字节,用于存储有关页的系统信息,包括页码、页类型、页的可用空间以及拥有该页的对象的分配单元 ID
3)单记录最大8060字节
4)在页中通过行偏移表定位记录
5)区是SqlServer管理空间的基本单位,由8个连续的页组成(64Kb)
6) 统一区:由单个对象使用。
7)混合区:最多可由8个对象使用。
8)SQL Server 数据库文件由文件页组成,每个文件有文件Id,每页有页编号,例如01:0001,表示01文件编号为0001的页。
9)SQL Server表包含在一个或多个分区中,每个分区在一个堆或一个聚集索引结构包含数据行
四、Oracle
1)oracle最小存储单位是块(大小可以是2kb,4kb,8kb,16kb)
2)数据扩展:由一些连续的块组成
3)段:由多个数据扩展组成
4)Oracle中的数据逻辑上存储于表空间(tablespace)中,而物理上则存储于属于表空间的数据文件(datafile)中
5)Oracle数据库中每个表空间是多个物理数据文件构成的。一个数据文件只能属于一个表空间。
6) 数据库文件扩展名.ora。
五、索引
1)用于对数据进行编排,有利于提高查询效率。
2)适合建立索引的情况:经常用于查询的列。
3)不适合建立索引:表中数据较少,或者某列的值重复较多,例如性别。
六、索引类型
1)聚集索引:索引表的顺序与数据表的顺序相同,一张表只能有一个聚集索引。
2)非聚集索引:索引表的顺序与数据表的顺序只有逻辑上的关系,可以有多个。
3)主键索引
4)唯一索引
七、创建索引
语法:
CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED]
INDEX index_name ON table_name (column_name…)
[WITH FILLFACTOR=x]
八、索引结构
1)B树/B+树存储
2)Hash结构存储
3)位图存储(sqlserver不支持)
-- 创建hash索引
-- 1、添加一个hash列
alter table bank
add sum_name as checksum(name)
-- 2、在hash列上建立索引
create nonclustered index ix_sum_name
on bank(sum_name)
-- 3、根据hash值查询
select * from bank where sum_name=CHECKSUM('老黑')
数据库原理(八)--数据存储与索引
最新推荐文章于 2023-04-13 23:13:18 发布