什么是数据库索引 有哪些类型和特点_数据库其它

有效优化VPS性能,提高VPS服务器运行速度,除了合理配置WEB服务器外,更多的是需要我们能够很好的优化网站程序及网站数据库,网站数据库的优化最为基础的优化措施就是建立数据库索引了,这里就介绍一下,什么是数据库索引?有哪些类型和特点?

  ⑴,什么是数据库索引?

  

  数据库索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。在数据库中,索引的含义与日常意义上的“索引”一词并无多大区别(想想小时候查字典),它是用于提高数据库表数据访问速度的数据库对象。

  

  ①一些情况下,索引还可用于避免排序操作;

  

  ②对于非聚集索引,有些查询甚至可以不访问数据页;

  

  ③索引可以避免全表扫描。多数查询可以仅扫描少量索引页及数据页,而不是遍历所有数据页;

  

  ④聚集索引可以避免数据插入操作集中于表的最后一个数据页。

  

  当然,虽然数据库索引可以有效提高数据库数据的查询速度,但是也会导致数据库系统更新数据的性能下降,因为大部分数据更新需要同时更新索引。

  

  ⑵,数据库索引的类型:

  

  数据库索引好比是一本书前面的目录,能加快数据库的查询速度。根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引。尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键或唯一索引。

  

  ①聚集索引,表数据按照索引的顺序来存储的。对于聚集索引,叶子结点即存储了真实的数据行,不再有另外单独的数据页;

  

  ②非聚集索引,表数据存储顺序与索引顺序无关。对于非聚集索引,叶结点包含索引字段值及指向数据页数据行的逻辑指针,该层紧邻数据页,其行数量与数据表行数据量一致。

  

  在一张表上只能创建一个聚集索引,因为真实数据的物理顺序只可能是一种。如果一张表没有聚集索引,那么它被称为“堆集”(Heap)。这样的表中的数据行没有特定的顺序,所有的新行将被添加的表的末尾位置。

  

  ⑶,数据库索引的基本特点:

  

  建立索引的目的是加快对表中记录的查找或排序。为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。数据库索引就是为了提高表的搜索效率而对某些字段中的值建立的目录。数据库索引是建立在数据库表中的某些列的上面。在创建数据库索引的时候,应该考虑在哪些列上可以创建索引,在哪些列上不能创建索引。一般来说,应该在这些列上创建索引。

  

  通过对于数据库索引知识和其基本特点的了解,不难发现,建立和使用数据库索引,对于提供数据库系统整体性能有着极为有利的作用,能够极为有效的加快数据库数据库的读取速度,但同时,也存在着一定的弊端,数据库索引的创建和维护,以及存储不仅会耗费大量的时间和精力,同时也会极为消耗VPS服务器的硬盘空间等资源,因此,对于大型数据库的维护,我们还需要谨慎使用数据库索引。 

时间: 2024-10-22 10:48:35

什么是数据库索引 有哪些类型和特点_数据库其它的相关文章

大数据时代的数据库选择:SQL还是NoSQL?_数据库其它

一.专家简介VoltDB公司首席技术官Ryan Betts表示,SQL已经赢得了大型企业的广泛部署,大数据是它可以支持的另一个领域.Couchbase公司首席执行官Bob Wiederhold表示,NoSQL是可行的选择,并且从很多方面来看,它是大数据的最佳选择,特别是涉及到可扩展性时.二.SQL经历时间的考验,并仍然在蓬勃发展结构化查询语言(SQL)是经过时间考验的胜利者,它已经主宰了几十年,目前大数据公司和组织(例如谷歌.Facebook.Cloudera和Apache)正在积极投资于SQL

在ACCESS和SQL Server下Like 日期类型查询区别_数据库其它

最近在用ACCESS数据库是遇到的问题总结: 一.在ACCESS中LIKE的用法 Access里like的通配符用法是这样: "?"表示任何单一字符: "*"表示零个或多个字符: "#"表示任何一个数字 所以应该是: select * from databasename where fieldname like '*XX*' 但在SQL SERVER 里是用%表示零个或多个字符 二.如何在ACCESS查询datetime类型字段的日期范围数据 如

当数据库变慢时的解决方法_数据库其它

第一章 检查系统的状态 1.1 使用sar来检查操作系统是否存在IO问题 1.2 关注内存vmstat 1.3 找到使用资源特别大的Oracle的session及其执行的语句 1.4 查找前十条性能差的sql语句 第二章 检查会话状态 当数据库变慢时,我们应如何入手 当应用管理员通告现在应用很慢.数据库很慢时,当Oracle DBA在数据库上做几个示例的Select也发现同样的问题时,有些时侯就会无从下手,因为DBA认为数据库的各种命种率都是满足Oracle文档的建议.实际上如今的优化己经向优化

数据库的ACID特性术语详解_数据库其它

ACID就是:原子性(Atomicity ).一致性( Consistency ).隔离性( Isolation)和持久性(Durabilily). 1. 原子性 原子性属性用于标识事务是否完全地完成,一个事务的任何更新要在系统上完全完成,如果由于某种原因出错,事务不能完成它的全部任务,系统将返回到事务开始前的状态. 让我们再看一下银行转帐的例子.如果在转帐的过程中出现错误,整个事务将会回滚.只有当事务中的所有部分都成功执行了,才将事务写入磁盘并使变化永久化. 为了提供回滚或者撤消未提交的变化的

数据库触发器(Trigger)的一点使用心得_数据库其它

(1) 针对较为复杂的跨多表的数据业务级别的约束,可以通过触发器来替代大量的后台判断代码,效率较高且便捷. (2) 如果想通过触发器辅助业务逻辑,不能单着眼于数据库内容的变化来设计触发器,还必须紧密结合业务模型中涉及该表的所有地方,因为很有可能因为不一致的逻辑处理方式导致我们设计的触发器遗漏下一些分支条件!其实,在这种情况下,如果能有更好的方法,不建议使用触发器,因为牵扯到过多的业务逻辑内容的话,会使触发器的设计和编写困难重重,不能充分发挥其便捷高效的优点. (3) 鉴于触发器在实际运行的时候,

数据库查询排除重复记录的方法_数据库其它

今天由于工作需要,需要在数据库中找出某一字段下不同的记录值,很简单的问题被我想的太复杂,很是郁闷,原因是SQL的一条命令忘了,现问题已解决,赶快拿来做备忘. 其实这里只需要用到SQL中的DISTINCT命令即可,非常简单,语法如下: 复制代码 代码如下: SELECT DISTINCT 列名称 FROM 表名称 举例说明: 假设现有一个数据库表:htmer: 复制代码 代码如下: field001 记录1 记录2 记录1 记录3 现在这张表中有四条记录,但有一条记录是重复的,如果我要去掉该重复记

Sybase数据库sa密码丢失后解决方法_数据库其它

1.在Sybase目录的install子目录的启动server文件  RUN_server(这里的server表示你的服务器名称,如这里我的是RUN_FENGLB)名,编辑该文件,  在其中的"\data\master.dat -sFENGLB"后加入参数 -psa,保存该文件.  2.如果服务器已经启动,先停止之.  3.启动一个DOS窗口,转到上面的install目录,将DOS窗口的属性的屏幕缓冲区大小设置为9999,将执行第1步批处理文件以启动server,在启动之后,将DOS窗

提前认识软件开发(32) 数据库索引

索引在数据库中占有非常重要的地位,它是对数据库表中一列或多列的值进行排序的一种结构.正确使用索引,可快速访问数据库表中的特定信息,进而提高数据库脚本的执行效率. 1. 索引分类 数据库表中经常有一列或几列的组合,其值唯一地标识表中的每一行,该列称为表的主键. 在数据库中,将索引分为三类:唯一索引.主键索引和聚集索引. 唯一索引是不允许其中任何两行具有相同索引值的索引,即索引列的值不允许重复. 主键索引是唯一索引的特定类型,该索引要求主键中的每个值都唯一. 在聚集索引中,表中行的物理顺序与键值的逻

mysql数据库索引损坏及修复经验分享

  这篇文章主要介绍了mysql数据库索引损坏及修复经验分享,需要的朋友可以参考下 mysql表索引被破坏的问题及解决 下午上班,惊闻我的dedecms的网站出问题了,访问一看,果然全屏报错,检查mysql日志,错误信息为: Table '.dedecmsv4dede_archives' is marked as crashed and should be repaired 提示说cms的文章表dede_archives被标记有问题,需要修复.于是赶快恢复历史数据,上网查找原因.最终将问题解决.