数据库原理(八)--数据存储与索引

一、存储介质

磁盘:由磁道、扇区、扇面、柱面组成。

格式化:就是把磁盘分成指定大小的块(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('老黑')










  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值