讲解MySQL索引的概念及数据库索引的应用

讲解MySQL 索引的概念及数据库索引的应用

发布时间:2008-05-06 00:18:48 来源: 作者: 点击:530

1. 数据库引入了索引

用户对数据库最频繁的操作是进行数据查询。一般情况下,数据库在进行查询操作时需要对整个表进行数据搜索。当表中的数据很多时,搜索数据就需要很长的时间,这就造成了服务器的资源浪费。为了提高检索数据的能力,数据库引入了索引机制。

2. 有关“索引”的比喻

从某种程度上,可以把数据库看作一本书,把索引看作书的目录,通过目录查找书中的信息,显然较没有目录的书方便、快捷。

3. 数据库索引实际是什么?(两部分组成)

索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。

4. 索引在表中的角色

一个表的存储是由两部分组成的,一部分用来存放表的数据页面,另一部分存放索引页面。索引就存放在索引页面上,

5. 索引高效原理

通常,索引页面相对于数据页面来说小得多。当进行数据检索时,系统先搜索索引页面,从中找到所需数据的指针,再直接通过指针从数据页面中读取数据。

6. 索引的分类

在SQL Server 的数据库中按存储结构的不同将索引分为两类:簇索引(Clustered Index)和非簇索引(Nonclustered Index)。

(1)簇索引对表的物理数据页中的数据按列进行排序,然后再重新存储到磁盘上,即簇索引与数据是混为一体,的它的叶节点中存储的是实际的数据。由于 簇索引对表中的数据一一进行了排序,因此用簇索引查找数据很快。但由于簇索引将表的所有数据完全重新排列了,它所需要的空间也就特别大,大概相当于表中数

据所占空间的120% 。表的数据行只能以一种排序方式存储在磁盘上,所以一个表只能有一个簇索引。

(2)非簇索引具有与表的数据完全分离的结构,使用非簇索引不用将物理数据页中的数据按列排序。非簇索引的叶节点中存储了组成非簇索引的关键字的值 和行定位器。行定位器的结构和存储内容取决于数据的存储方式。如果数据是以簇索引方式存储的,则行定位器中存储的是簇索引的索引键;如果数据不是以簇索引 方式存储的,这种方式又称为堆存储方式(Heap Structure),则行定位器存储的是指向数据行的指针。非簇索引将行定位器按关键字的值用一定的方式排序,这个顺序与表的行在数据页中的排序是不匹 配的。由于非簇索引使用索引页存储因此它比簇索引需要更多的存储空间且检索效率较低但一个表只能建一个簇索引,当用户需要建立多个索引时就需要使用非簇索 引了。

小结:Clustered Index 是与物理数据混在一起并对物理数据进重排,就像使用拼音查字典;Unclustered Index 是与物理数据完全分离的,利用额外空间对关键字进行重排,就像使用部首查字典。

数据库索引应用

一、索引的概念

索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。

二、索引的特点

1. 索引可以加快数据库的检索速度

2. 索引降低了数据库插入、修改、删除等维护任务的速度

3. 索引创建在表上,不能创建在视图上

4. 索引既可以直接创建,也可以间接创建

5. 可以在优化隐藏中,使用索引

6. 使用查询处理器执行SQL 语句,在一个表上,一次只能使用一个索引

7. 其他

三、索引的优点

1. 创建唯一性索引,保证数据库表中每一行数据的唯一性

2. 大大加快数据的检索速度,这也是创建索引的最主要的原因

3. 加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

5. 通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能。


相关文章

  • 数据库和算法知识简介
  • 写在前面的话 在编程领域有一句人尽皆知的法则"程序=数据结构+算法",我个人是不太赞同这句话(因为我觉得程序不仅仅是数据结构加算法),但是在日常的学习和工作中我确认深深感受到数据结构和算法的重要性,很多东西,如果你愿意稍 ...

  • OracleERP求职简历模板
  • 王某某 渤海大学 Oracle ERP(软件工程硕士) 性别:女 出生年月:1989.01 民族:汉 政治面貌:党员 联系方式:158-0678-5341 电子邮件:[email protected] 求职意向及自我评价 期望从事职业:Or ...

  • zimbra管理员手册
  • Zimbra管理员手册 1 核心功能 ZCS是一个创新的消息和协作应用系统,提供了如下一些解决方案:  电子邮件  群组日历  通讯录  任务管理  基于Web的文档管理和创作 ZCS的核心功能包括:  邮件投递和存储  邮件 ...

  • 工资管理系统数据库
  • 数据库课程设计报告 题 目 工资管理系统 专业班级 计算机科学与技术 学 号 姓 名合 作 者 指导教师 (2008年12月) 目 录 数据库课程设计报告 .......................................... ...

  • mysql主从数据库的优势
  • MySQL 主从服务器配置的优势\ 在MySQL 数据库中,支持单项.异步复制.在复制过程中,一个服务器充当 主服务器,而另外一台服务器充当从服务器.如下图所示.此时主服务器会将更 新信息写入到一个特定的二进制文件中.并会维护文件的一个索引 ...

  • 数据库系统教学大纲
  • <数据库系统>课程教学大纲 一 课程说明 1.课程基本情况 课程名称:数据库系统 英文名称: Database System 课程编号:2413216 开课专业:计算机科学与技术 开课学期:第4学期 学分/周学时:5/5 课程类 ...

  • 2.2因特网信息的查找教案
  • 2.2 因特网信息的查找 德江一中 田太江 章节 第二章 第二节 因特网信息的查找 1课时 本节旨在培养和提升学生获取网络信息的能力,使其成为每位学生在信息社会必须掌握的生存技 教材能,并为学生学会有效组织和处理信息奠定基础,是学生继续学习 ...

  • 2016最新面试题
  • 1.10万行数据情况下,如何优化like '%经济%'? 2.cookie和session的区别和联系,禁用cookie后session还能用吗?为什么? 3.多台服务器怎样实现session共享,阐述实现方法. 4.代码题会有PHP中&a ...

  • RedHat6.2服务器配置方案
  • RedHat6.2 服务器配置方案 下面我将向大家介绍如下几种服务器端软件的配置方法及其工作原理: apache,dhcp,dns,ppp,sendmail,samba,squid,isdn,mysql,tomcat,php.这些配置已经基 ...

© 2024 范文参考网 | 联系我们 webmaster# 12000.net.cn