数据库存储和索引

原创 2015年11月19日 13:16:59

数据库存储和索引

导语

本科的时候,我对数据库的感觉就是:“恩,数据库就是用于处理和存储数据的,它就是所谓“数据库”。并不了解它是如何存储大量数据,如何做到快速搜索的。”
考研期间学习了文件系统,B+树,但是都和数据库联系不起来。经过研究生的课程,算是慢慢深入了解数据库了。

一、数据库的介绍

1.什么是数据库

DBS(Database system)是指带有数据库并利用数据库技术进行数据管理的计算机系统
DBMS(Database management system)是设计用于存储,管理,使用数据库的软件系统

2.为什么要用数据库

主要是普通文件系统的问题:
1)数据冗余,非结构化,高维护代价
2)当两个文件同时被写入,谁的操作被保存?
3)当更新文件时,电源断开,操作被保存了吗?答案是不确定。
需要一个专门处理数据的系统,这就是数据库系统诞生的原因。

OS处理的是通用操作,注重的是可移植性
DBMS处理的是专用操作,用于处理大量数据,可以根据需要调整页面替换策略。

二、数据库的存储

1.和普通的文件系统的相同点。

数据存储在硬盘上,有多级存储结构。
缓冲区管理(选择合适的换页策略,降低缺页率)

2.和普通的文件系统的不同点。

文件系统:数据存取基本是以记录为单位,记录内部有结构,而文件中数据是没有结构的,不能表示复杂的数据结构,而且存取效率也不高。数据通过应用程序的使用方法在磁盘中存取,而数据具体的存储由文件系统完成,造成数据的独立性差,冗余度大,一致性差等问题。

数据库系统:数据整体结构化。数据共享度高,冗余度小,应用程序和数据是分离开来的,所以数据有较高的独立性。应用程序对数据的存取必须通过数据库管理系统来进行操作,而数据的具体存储是通过内模式完成的,数据通过两层映像保证了数据的逻辑独立性与物理独立性。

内模式解释:是数据物理结构和存储方式的描述,是数据在数据库内部的表示方法,记录的存储方式(顺序存储,B树结构存储,hash存储),索引的组织方式,数据是否压缩,数据是否加密,数据存储记录结构的规定。一个数据库只有一个内模式。

两层映像解释:数据库的三级结构(外模式,概念模式,内模式)。
外模式是用户的局部逻辑结构,概念模式是数据库的整体逻辑结构,内模式是数据库的物理结构。
而两层映像就是外模式/概念模式映像,概念模式/内模式映像。

三、索引的分类

  1. 聚簇索引,非聚簇索引
    维护代价昂贵(插入时代价高)

  2. Hash索引
    只能使用于求相等的搜索,不能进行范围搜索。

  3. B+ Tree索引
    插入代价比较低,O(logm N)
    查询效率取决于B+ Tree的层数。

总结:索引一般情况下是提高检索速度的。但是创建和维护索引需要耗费时间,耗费时间的数量随着数据量的增加而增加。而且索引需要占用物理空间。


参考:
浙大寿黎旦课件

版权声明:本文为博主原创文章,未经博主允许不得转载。

深入理解数据库磁盘存储(Disk Storage)

数据库管理系统将数据存储在磁盘、磁带以及其他的裸设备上,虽然这些设备的访问速度相比内存慢很多,但其非易失性和大容量的特点使他们成为数据存储的不二之选。 本文主要讨论大型数据库产品的磁盘存储内部结构,...
  • idber
  • idber
  • 2012年10月18日 21:21
  • 24538

MySQL数据库如何解决大数据量存储问题

利用MySQL数据库如何解决大数据量存储问题? 各位高手您们好,我最近接手公司里一个比较棘手的问题,关于如何利用MySQL存储大数据量的问题,主要是数据库中的两张历史数据表,一张模拟量历史数据和...
  • likika2012
  • likika2012
  • 2014年08月25日 09:11
  • 88482

【转载】几种数据存储方式的特点比较

存储方法描述常见用例优点缺点数据库体积主要产品关系型数据库.行存储数据结构化或存储在行中。在事务处理、交互式事务的应用程序中使用。稳健的、 经验证的技术来捕获中途事务。扩展性和巨大的数据查询处理时间。...
  • u012918303
  • u012918303
  • 2015年03月20日 15:11
  • 1295

关于图片或者文件在数据库的存储方式归纳

http://www.cnblogs.com/wangtao_20/p/3440570.html 商品图片,用户上传的头像,其他方面的图片。目前业界存储图片有两种做法: 1、  把图片直接以二...
  • haluoluo211
  • haluoluo211
  • 2016年07月31日 19:45
  • 24229

solr的用法-存储数据到索引库

之前简单的介绍了一下solr的功能已经部署成功以后的用法,现在就讲解一下具体怎么样去通过配置和编写代码实现吧数据存储到索引库 这里以商品为例,一把我们在实际项目中特别是商城经常需要对商品进行全文检索 ...
  • u013239236
  • u013239236
  • 2016年07月01日 22:48
  • 5234

mysql 数据和索引的存储关系

mysql的索引和数据的存储关系介绍
  • tangkund3218
  • tangkund3218
  • 2015年07月18日 20:34
  • 2868

solr中文搜索倒排索引和数据存储结构

作为搜索,本文章原地址:http://blog.csdn.net/chunlei_zhang/article/details/38520315我们传统的方式(正排索引)是从关键点出发,然后再通过关键点...
  • u012142423
  • u012142423
  • 2014年08月14日 23:48
  • 4296

MYSQL数据库高级应用宝典含实例(索引、视图、触发器、游标和存储过程)

  • 2015年03月27日 16:23
  • 243KB
  • 下载

MYSQL数据库高级应用宝典含实例(索引、视图、触发器、游标和存储过程)

  • 2012年10月27日 20:37
  • 235KB
  • 下载

MYSQL数据库的索引、视图、触发器、游标和存储过程

  • 2011年12月28日 09:56
  • 231KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据库存储和索引
举报原因:
原因补充:

(最多只允许输入30个字)