数据库,港台叫资料库(Data base),简单来说可视为电子化的档案柜——储存电子档案的处所,使用者可以对档案中的资料执行新增、撷取、更新、删除等 *** 作。资料库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗馀度、与应用程式彼此独立的资料集合。
数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗馀度、与应用程式彼此独立的资料集合。
数据库一般具有储存、撷取、安全保障、备份等基础功能。资料库管理系统可以依据它所支援的资料库模型来作分类,例如关联式、XML;或依据所支援的电脑类型来作分类,例如伺服器群集、行动电话;或依据所用查询语言来作分类,例如SQL、XQuery;或依据效能冲量重点来作分类,例如最大规模、最高执行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支援多种查询语言。
数据库类型
关联式资料库
MySQL
MariaDB(MySQL的代替品)
Percona Server(MySQL的代替品)
PostgreSQL
Microsoft Access
Microsoft SQL Server
Google Fusion Tables
FileMaker
Oracle资料库
Sybase
dBASE
Clipper
FoxPro
foshub
几乎所有的资料库管理系统都配备了一个开放式资料库连接(ODBC)驱动程式,令各个资料库之间得以互相整合。
非关系型资料库(NoSQL)
BigTable(Google)
Cassandra
MongoDB
CouchDB
键值(key-value)资料库
Apache Cassandra
Dynamo
LevelDB
索引是表示数据的另一种方式,它提供的数据顺序不同于数据在磁盘上的物理存储顺序。索引的特殊作用是在表内重新排列记录的物理位置。索引可建立在数据表的一列上,或建立在表的几列的组合上。回想一下图书馆中,存放着一架一架的图书。假设要找一本书,图书管理员视必要一架一架的寻找,直到找到想要的那本书为止。这样的查找肯定费时费力,那么管理员可以将所有的图书标题按字母分类建立索引卡片,按字母顺序放在不同的办公抽屉中,这样一架一架查找图书的过程就变成了在办公桌前抽屉中查询索引卡片了,很容易得到有关这本书的信息。
再进一步设想,图书管理员很勤快,他不仅按照图书标题字母分类,而且还按作者姓名和出版社分别建立了另外的索引卡片,这个过程将给借阅者在检索图书信息时以更大的灵活性。因此在一个数据表中是可以建立多个索引的。
在数据库中,对无索引的表进行查询一般称为全表扫描。全表扫描是数据库服务器用来搜寻表的每一条记录的过程,直到所有符合给定条件的记录返回为止。这个 *** 作可以比作在图书馆中查书,从第一个书架的第一本书开始,浏览每一本书,直到发现所要的书为止。为了进行高效查询,可以在数据表上针对某一字段建立索引,由于该索引包括了一个指向数据的指针,数据库服务器则只沿着索引排列的顺序对仅有一列数据的索引进行读取(只建立一个索引)直至索引指针指向相应的记录上为止。由于索引只是按照一个字段进行查找,而没有对整表进行遍历,因此一般说来索引查找比全表扫描的速度快。
那么,是不是使用索引查询一定比全表扫描的速度快呢?答案是否定的。如果查询小型数据表(记录很少)或是查询大型数据表(记录很多)的绝大部分数据,全表扫描更为实用。例如,查询“性别”字段,其值只能是“男或女”,在其上建立索引的意义就不大,甚至不允许在布尔型、大二进制型(备注型、图像型等)上建立索引。
示例:
聚簇索引:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)