数据库索引初识

数据库的操作,选择,修改,删除。对于数据量大或者有性能要求时,都需要优化我们的操作,其中一个操作就是建立索引,在数据库表的某列或者某几列上面建立索引。

例如 表information:

  name  age  sex  address ……

查询某个姓名为“Nommy”的信息,如果该表有几千行,则需每行遍历查找数据,直至最后一行,效率不高,没有目的,甚至姓名不是主键可能存在多行姓名为Nommy情况,那么必须要遍历每一行完成为止。,,即全表扫描

索引:索引是表的列上创建,是一种数据结构

  B-Tree(B树)索引,

  引用过来数据结构中的B树,索引的列元素按照有序排列,非常方便查找某一条件,比如age索引,age<40,对吧,

  Hash索引,

  这种索引的查找相等效率超级高,比如按照名字索引,按照名字查找某一个人的信息。,但是条件查询的话也就不方便了。

  位图索引,

  适合包含布尔值得列上,

索引建立  

  自己建立索引:

  数据库中,数据库已会自动创建索引提升性能。但也可以自己创建,可自己选择方式,那些列等。

  CREATE INDEX name_index  

  ON information(name)

  自动创建索引:

  表中定义主键约束或者唯一约束等,自动创建索引

说明:

  索引存储列值数据结构,使得查找更快。同时对于该项数据其他列的元素,通过指针指向。速度快,也可以访问该元组其他元素的值,很是方便

  索引也是要占空间的,仅当需要的适合,建立合适的索引,才是最重要的

  

时间: 2024-10-06 21:56:26

数据库索引初识的相关文章

mysql数据库索引类型和原理

索引初识: 最普通的情况,是为出现在where子句的字段建一个索引.为方便讲述,我们先建立一个如下的表. CREATE TABLE mytable ( id serial primary key, category_id int not null default 0, user_id int not null default 0, adddate int not null default 0 ); 很简单吧,不过对于要说明这个问题,已经足够了.如果你在查询时常用类似以下的语句: SELECT *

数据库索引总结

一.为什么要创建索引呢(优点)? 这是因为,创建索引可以大大提高系统的性能. 第一,   通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性. 第二,   可以大大加快数据的检索速度,这也是创建索引的最主要的原因. 第三,   可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义. 第四,   在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间. 第五,   通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能. 二.建立方向索引的不利因

Mysql数据库索引

索引(Index)是帮助mysql高效获取数据的数据结构.对于高性能非常关键. 索引的重要性主要体现在数据量非常大的时候.规模小,负载轻的数据库即使没有索引也可以获到好的查询效果 例如: 1 mysql>select first_name from actor where actor_id=5; 改索引列位于actor_id列,因此mysql会使用索引找到actor_id为5的行. 索引有很多种类型,各自有各自的特点.索引实在存储引擎层实现的,而不是服务器层. (1).B-Tree索引 谈论引擎

第二百八十八节,MySQL数据库-索引

MySQL数据库-索引 索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构.类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获取即可. 如果没有创建索引查找数据时,是全表扫描的,也就是向查字典一样没有目录,靠一页一页的翻到目标数据位置,这样如果数据量大会相当耗时, 索引就是快速帮助用户找到目标数据,节省时间 索引简介 索引是以B+tree方式的树形结构存放数据的 详情,可以网上搜索一下B+tree MySQL中常见索引有: 普通索引 唯一索引 主键索引 组合索

深入浅出数据库索引原理

前段时间,公司一个新上线的网站出现页面响应速度缓慢的问题, 一位负责这个项目的但并不是搞技术的妹子找到我,让我想办法提升网站的访问速度 ,因为已经有很多用户来投诉了.我第一反应觉的是数据库上的问题,假装思索了一下,摆着一副深沉炫酷的模样说:"是不是数据库查询上出问题了, 给表加上索引吧",然后妹子来了一句:"现在我们网站访问量太大,加索引有可能导致写入数据时性能下降,影响用户使用的".当时我就楞了一下, 有种强行装逼被拆穿的感觉,在自己的专业领域居然被非专业的同学教

数据库索引B+树

面试时无意间被问到了这个问题:数据库索引的存储结构一般是B+树,为什么不适用红黑树等普通的二叉树? 经过和同学的讨论,得到如下几个情况: 1. 数据库文件是放在硬盘上,每次读取数据库都需要在磁盘上搜索,因此需要考虑磁盘寻道时间,我们都知道磁盘寻道开销是非常大的.同时,索引一般也是非常大的,内存不能放下,因此也会放在磁盘上.(另外,还与局部性原理与磁盘预读有关系). 2. B+树所有的关键字都出现在叶子节点的链表(稠密索引)中,且链表中的关键字是有序的.非叶子节点只起索引作用(稀疏索引). 叶子节

数据库索引介绍及使用【转】

数据库索引介绍及使用 一.索引的概念 索引就是加快检索表中数据的方法.数据库的索引类似于书籍的索引.在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息.在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库. 二.索引的特点 1.索引可以加快数据库的检索速度 2.索引降低了数据库插入.修改.删除等维护任务的速度 3.索引创建在表上,不能创建在视图上 4.索引既可以直接创建,也可以间接创建 5.可以在优化隐藏中,使用索引 6.使用查询处理器执行SQL语句,在一个表

MongoDB数据库索引

前面的话 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录.这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的.本文将详细介绍MongoDB数据库索引 引入 索引能够提高查询效率,如何体现呢?接下来使用性能分析函数explain()来进行分析说明 首先,插入10万条数据 接着,不创建索引,来寻找time范围在100和200之间的文档 由图中所知,tot

数据库索引的实现原理

1 什么是索引 数据库索引,是数据库管理系统中一个排序的数据结构. 对数据记录建立索引后,每条索引记录包含:(1)值与相应 数据记录 被索引列的值一样的键(2)相应数据记录的地址. “索引的实现通常使用B树及其变种B+树”,即采用B树等对 索引记录 按键进行排序. 根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引(唯一).主键索引(唯一非空)和聚集索引(行间逻辑顺序与物理顺序一致,提供更快数据访问). 2 使用索引的利弊 利:加快查询速度 弊:索引需要占用空间:创建和维护索引(插入.