`
hucj
  • 浏览: 8151 次
社区版块
存档分类
最新评论

索引的基本概念

 
阅读更多

昨天在优化一条SQL,冥思苦想无果,业务逻辑过了三遍还是无从下手,最后在别人的指引下加个个索引,速度提升十倍不止。。。(之前没用过索引,特此复习加深印象)

 

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

 

二、索引的特点
    1.索引可以加快数据库的检索速度 
    2.索引降低了数据库插入、修改、删除等维护任务的速度 
    3.索引创建在表上,不能创建在视图上 
    4.索引既可以直接创建,也可以间接创建 
    5.可以在优化隐藏中,使用索引 
    6.使用查询处理器执行SQL语句,在一个表上,一次只能使用一个索引 
    7.其他

 

三、索引的优点
    1.创建唯一性索引,保证数据库表中每一行数据的唯一性
    2.大大加快数据的检索速度,这也是创建索引的最主要的原因
    3.加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
    4.在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
    5.通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能。

 

四、索引的缺点
    1.创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加
    2.索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大
    3.当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度

 

五、索引分类
    1.直接创建索引和间接创建索引
    直接创建索引: CREATE INDEX mycolumn_index ON mytable (myclumn)
    间接创建索引:定义主键约束或者唯一性键约束,可以间接创建索引
    2.普通索引和唯一性索引
    普通索引:CREATE INDEX mycolumn_index ON mytable (myclumn)
    唯一性索引:保证在索引列中的全部数据是唯一的,对聚簇索引和非聚簇索引都可以使用
    CREATE UNIQUE COUSTERED INDEX myclumn_cindex ON mytable(mycolumn)
    3.单个索引和复合索引
    单个索引:即非复合索引
    复合索引:又叫组合索引,在索引建立语句中同时包含多个字段名,最多16个字段
    CREATE INDEX name_index ON username(firstname,lastname)
    4.聚簇索引和非聚簇索引(聚集索引,群集索引)
   聚簇索引:物理索引,与基表的物理顺序相同,数据值的顺序总是按照顺序排列
    CREATE CLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn) WITH
    ALLOW_DUP_ROW(允许有重复记录的聚簇索引)
   非聚簇索引:CREATE UNCLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn)

分享到:
评论

相关推荐

    sql 索引详解

    sql 索引 详解,主要讲述的是sql中的索引基本概念,用法

    MySQL数据库应用 实验训练4:视图和索引的构建与使用

    基于实验1创建的汽车用品网上商城数据库Shopping,理解视图和索引的概念和作用,练习视图的基本操作,包括视图的建立,视图的查询,视图的更新,视图的删除,体会视图带来的方便;练习索引的创建和删除,对比有索引...

    JAVA面试题MySQL索引原理及索引优化校招面试找工作笔试

    基本概念 MySQL索引结构的分类 Hash索引、B+树索引、全文索引、RTree索引。 B+树索引 B+树介绍,为什么选择B+树,非聚集索引 聚集索引 第一点、第二点、第三点 不建议使用过长的字段,不建议使用非自增字段作为主键 ...

    数据管理基础-21

    数据管理基础-2索引基本概念索引key-value 用于查找SQL 创建索引UNIQUE:key-value 和 row 是一对一的磁盘存储寻道时间旋转延迟内存

    空间数据库索引技术

    本书全面介绍了传统数据库、空间数据库及时空数据库相关的基本概念、应用领域、数据存储机制、数据检索操作及相关的数据索引技术结构,重点分析了空间数据库索引技术的特点、要求及相关实现算法。本书条理清晰、叙述...

    Mysql索引类型与基本用法实例分析

    主要介绍了Mysql索引类型与基本用法,结合实例形式分析了Mysql索引类型中普通索引、唯一索引、主键索引、组合索引、全文索引基本概念、原理与使用方法,需要的朋友可以参考下

    mysql面试题-mysql经典面试题目-数据库的基本概念-SQL语法-事务处理-索引优化-性能调优-mysql-面试题目

    为什么使用索引可以提高查询性能? 什么是事务?MySQL如何支持事务处理? 什么是主键和外键?它们之间有什么区别? 什么是数据库范式?列举一些常见的数据库范式。 什么是数据库连接池?为什么使用连接池可以...

    部分中英文词汇索引Focuscky动画演示大师课件.exe

    本节课学生除了掌握基本的索引概念外,还通过绘制纸质版和电子版思维导图的过程更深刻理解并掌握了每章知识、构建了属于自己的知识体系,间接完成了初步的期末复习。 在教学过程中应该更多的关注学生,对学生进行...

    SQL_Server视图和索引

    1. 熟练掌握使用企业管理器和T-SQL语句创建、查询、更新、修改和删除视图。 2. 进一步掌握视图与基本表的联系与区别。 3. 理解索引的概念和作用。 4. 熟练掌握索引的创建与删除

    Oracle索引

    关于Oracle索引的详细介绍,索引的基本概念,怎么创建单列、符合索引。

    mysql,innodb索引介绍

    BTree索引的基本概念,优劣势,分裂问题,explain输出解释,如何使用optimizer trace

    Mysql原理(二):索引的底层原理

    索引的基础概念 1.数据库索引是什么? 数据库索引是数据库管理系统(DBMS)中一个排序的数据结构,以协助快速查询和更新数据库中表的结构. 2.索引的类型 普通索引:是最基本的索引,它没有任何限制, 唯一索引:列值唯一...

    mong_索引.rtf

    mong索引的简介,小白适合.基本概念及使用.

    turf-index:草皮索引策略的基本概念证明。 仅支持开箱即用的 rtree

    用于创建地理索引的 turf 模块 turf.index(points, index-type) 为一组 Point|points 创建索引结构并将它们附加到 FeatureCollection|featurecollection 参数 范围 类型 描述 points FeatureCollection.<点> ...

    数据库优化之索引基础知识

    通过总结,我发现自己以前很多很模糊的概念都清晰了很多。 不论是缓存的数据信息,还是物理保存的信息,他们的基本单位都是数据页。所以理解数据页是最最基础的知识点,本篇博客就介绍跟索引有关的数据页的一些基础...

    solrCloud基本概念和搭建1

    4. 查询时自动负载均衡 SolrCloud索引的多个Replication可以分布在多台机器上,均衡查询压力 5.自动分发的索引和索引分片 发送文档到任何节点

    mysql_索引.rtf

    适合mysql小白看的,关于索引的创建.以及基本的概念.

    SQL Server 2008数据库实用教程 sqlserver数据库基础教程 第1章 数据库的基本概念 共85页.pptx

    SQLServer数据库教程 第1章 数据库的基本概念(共85页) SQLServer数据库教程 第2章 数据库和表创建(共54页) SQLServer数据库教程 第3章 表数据操作(共30页) SQLServer数据库教程 第4章 sql列表(共6页) SQL...

Global site tag (gtag.js) - Google Analytics