索引的分类,优缺点,使用

索引的分类

主键索引:某一个属性组能唯一标识一条记录,主键索引只能有一个

唯一索引:避免同一个表中某数据列中的值重复,唯一索引可有多个

常规索引:快速定位特定数据,应加在查询条件的字段,不易添加太多常规索引,影响数据的插入,删除和修改操作

复合索引:指多个字段上创建的索引,只有复合索引的第一个字段出现在查询条件中,该索引才可能被使用,因此将应用频度高的字段,放置在复合索引的前面,会使系统最大可能地使用此索引,发挥索引的作用

关于聚集索引和非聚集索引:https://blog.csdn.net/yue_hu/article/details/80634274

索引的优点

① 通过创建索引,可以在查询的过程中,提高系统的性能

② 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性

③ 在使用分组和排序子句进行数据检索时,可以减少查询中分组和排序的时间

索引的缺点

① 创建索引和维护索引要耗费时间,而且时间随着数据量的增加而增大

② 索引需要占用物理空间,如果要建立聚簇索引,所需要的空间会更大

③ 在对表中的数据进行增加删除和修改时需要耗费较多的时间,因为索引也要动态地维护

应该在哪些列上创建索引

① 经常需要搜索的列上

② 作为主键的列上

③ 经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度

④ 经常需要根据范围进行搜索的列上

⑤ 经常需要排序的列上

⑥ 经常使用在where子句上面的列上

不应该在哪些列上创建索引

① 查询中很少用到的列

② 对于那些具有很少数据值的列.比如人事表的性别列,bit数据类型的列

③ 对于那些定义为text,image的列.因为这些列的数据量相当大

④ 当对修改性能的要求远远大于搜索性能时.因为当增加索引时,会提高搜索性能,但是会降低修改性能

原文地址:https://www.cnblogs.com/storml/p/10801819.html

时间: 2024-11-09 00:44:51

索引的分类,优缺点,使用的相关文章

通过Http管理Solr Core,实现索引的分类

查看所有core的状态 使用样例 http://172.168.63.233:8983/solr/admin/cores?action=STATUS 查看某一个core的状态 http://172.168.63.233:8983/solr/admin/cores?action=STATUS&core=collection3 创建core 需要提供coreName.实例路径.Config配置.schema文件及数据目录 , 其中instanceDir必须要. config, schema &

SQL索引是什么?索引的作用是什么?索引的优点是什么?索引的缺点是什么?索引的分类?什么情况下该创建索引?

1.SQL索引是什么?定义:索引(Index)是帮助MySQL高效获取数据的数据结构,就好比书的目录,加快数据库的查询速度. 2.SQL索引的作用是什么?优点是什么?提高查询效率消除数据分组.排序避免“回表”查询(索引覆盖)优化聚合查询用于多表JOIN关联查询利用唯一性约束,保证数据唯一性InnDB行锁实现 3.使用索引的优点(1)可以通过建立唯一索引或者主键索引,保证数据库表中每一行数据的唯一性.(2)建立索引可以大大提高检索的数据,以及减少表的检索行数(3)在表连接的连接条件 可以加速表与表

mysql_12_索引的分类_创建_删除

1 USE db_book; 2 -- 第四节:索引分类 3 -- 1.普通索引 4 -- 这类索引可以创建在任何数据类型中: 5 -- 2.唯一性索引 6 -- 使用UNIQUE参数可以设置,在创建唯一性索引时,限制该索引的值必须是唯一的; 7 -- 3.全文索引 8 -- 使用FULLTEXT参数可以设置,全文索引只能创建在CHAR,VARCHAR,TEXT类型的字段上; 9 -- 主要作用就是提高查询较大字符串类型的速度:只有MyISAM引擎支持该索引,Mysql默认引擎不支持. 10 -

知识点差缺不漏贴:索引的分类

一.引言 今晚突然间被人问起关于索引分类的问题,居然出现了脑子的短路,没有回答上来,很是不应该,搜集一下资料,算是立此存照. 二.建立索引的优点: 1.大大加快数据的检索速度; 2.创建唯一性索引,保证数据库表中每一行数据的唯一性; 3.加速表和表之间的连接; 4.在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间. 三.索引类型: 根据数据库的功能,可以在数据库设计器中创建四种索引:唯一索引.非唯一索引.主键索引和聚集索引. 尽管唯一索引有助于定位信息,但为获得最佳性能结果

(2.8)Mysql之SQL基础——索引的分类与使用

按逻辑分类: 1.主键索引(聚集索引)(也是唯一索引,不允许有空值) 2.普通索引或单列索引 3.多列索引(复合索引) 4.唯一索引或非唯一索引(非唯一索引其实就是普通/多列索引) 5.空间索引 6.创建索引的基本形式 7.索引的操作 1.查看索引2.创建单列索引3.复合索引4.唯一索引(允许多个空值,每列唯一)5.主键索引(不允许空值,唯一)6.索引的删除7.删除自增auto_increment   6.创建索引的基本形式 create [unique|fulltext|spatial] in

Mysql索引优化之索引的分类

Mysql的历史 简单回顾一下Mysql的历史,Mysql 是一个关系型数据库管理系统,由瑞典 Mysql AB 公司开发,目前属于 Oracle 公司.关系型数据库?将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性. Mysql的优势 Mysql 是开源的,所以你不需要支付额外的费用. Mysql 支持大型的数据库.可以处理拥有上千万条记录的大型数据库. Mysql 使用标准的 SQL 数据语言形式. Mysql 可以运行于多个系统上,并且支持多种语言.

本博客博文索引的分类汇总【花谢悦神】N

[LODOP相关博文索引]点击到链接关键词区块形式:LODOP具体的分类的简短问答.LODOP单个简短问答(小页面无需拖动滚动条). 其他关键词区块:LODOP问答部分链接.LODOP问答部分链接.LODOP常见问题连接(含常见小问答博文). 原文字顿号分隔链接形式(常用):Lodop简答问答大全.[简短问答]C-Lodop中一些测试用的地址.[个人用]一些常用代码,便于拷贝修改粘贴.LODOP和C-LODOP注册与角色等简短问答[增强版].LODOP.C-Lodop简短排查语句.LODOP表格

索引的分类--B-Tree索引和Hash索引

索引是存储引擎用来快速查找记录的一种数据结构,按照实现的方式有不同的种类,想B-Tree索引,hash索引,空间数据索引和全文索引等.下面主要说一下B-Tree索引和Hash索引.人们在谈论索引的时候如果没有特别说明,一般指的是B-Tree索引.B-Tree索引是使用B-Tree数据结构来存储索引的.B-Tree通常意味着所有的值是按照顺序存储的.B-Tree树有如下几个特征:⑴树中每个结点至多有m 棵子树:⑵若根结点不是叶子结点,则至少有两棵子树:⑶除根结点之外的所有非终端结点至少有[m/2]

MySQL 索引及其分类

概述 用过 mysql 的童鞋都知道建立索引的必要性,可是不少人对建立索引的目的仅仅停留于建立索引可以让查询变快 然而,为了达到这个目的,科学合理的建立索引也是非常有必要的 索引能够轻易将查询性能提高几个数量级,而一个"最优"索引有时比一个"好的"索引性能要高两个数量级 在 MySQL 中,索引可以包含一个活多个列的值,因为 MySQL 只能高效地使用索引的最左前缀列,所以包含多个列的索引中列的顺序也十分重要 而创建一个包含两个列的索引和创建两个分别包含一列的索引是