MySQL 中索引类型是什么

MySQL 中,索引类型是:普通索引、唯一索引、主键索引、组合索引。还是:B-Tree 索引、Hash索引、Fulltext 索引和 R-Tree 索引
查资料有的说是第一个,有的说第二个,不知道哪个对?

0

3个回答

万变不离其宗,如果你有数据结构课程学习的知识,这些一点都不难以理解。
索引的目的是为了更快速找到数据。
之所以索引不同,是因为不同类型的数据对索引的需求是不同的。
比如btree,适合对有序的数据做折半查找,而全文索引其实是一种倒排索引,也就是将文章拆散,按照字母为索引项建立的索引,而Hash索引适合特定类型的数据,它们可以用特定的散列算法均匀分布在桶(bucket)中。
这是按照实现方式来说的。
按照应用的方式来说,就如同你的前面的分类那样,比如说给主键设置的索引就是主键索引,给唯一约束字段加的就是唯一索引。
所以这两种分类方法都是存在的,不是谁对谁错。

2
murmuring1111
murmuring1111 3q,明白了!
4 年多之前 回复

请参考:MySQL索引的Index method中btree和hash的区别 http://blog.csdn.net/testcs_dn/article/details/41745387

0
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mysql索引类型normal,unique,full text的区别
问题1:mysql索引类型normal,unique,full text的区别是什么? normal:表示普通索引 unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique full textl: 表示 全文搜索的索引。 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 I
mysql索引类型normal,unique,full text的区别是什么?
normal:表示普通索引unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为uniquefull textl: 表示 全文搜索的索引。 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。 总结,索引的类别由建立索引的字段内容特性来决定,通常normal最常见。
mysql索引类型,索引创建,索引使用注意事项
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可以提高数据库中特定数据的查询速度。所有mysql列的类型都可以使用索引,例如:数据库中有两万条记录,现在要执行这样一个查询:select * from table t1 where num=20000。如果没有索引,将会遍历整个表,知道num=20000,这一行数据被找到。如果在num列上创建索引,mysql不需要任何扫描,直接在索引里...
MySql索引类型
Mysql支持哪几种索引索引是在MySql的存储引擎层中实现的,而不是在服务器层从数据结构角度1、B+树索引(O(log(n))):关于B+树索引,可以参考 MySQL索引背后的数据结构及算法原理BTREE在MyISAM里的形式和Innodb稍有不同在 Innodb里,有两种形态:一是primary key形态,其leaf node里存放的是数据,而且不仅存放了索引键的数据,还存放了其他字段的数据...
什么是索引?Mysql目前主要的几种索引类型
一、索引MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。创建索引时,你需要确保该索引是应用在 SQ...
mysql索引类型及索引方法
mysql索引类型normal,unique,full text的区别是什么?normal:表示普通索引unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为uniquefull textl: 表示 全文搜索的索引。 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。总结,索引的类...
Mysql-索引-BTree类型【精简】
网络上看了很多关于B-TREE的总结,b树,B-树,B+树,B*树(艾玛怎么还4个呢?都快蒙圈了呢), 有的真的很精彩令人佩服,但是都是篇幅太长啊,一大长段的文字就让人望而生畏啊。干脆做一个简化版的总结,通俗移动点介绍下,说说他们的区别。 一.B树 Binary Tree,就是一个二叉树。(什么K呀h,n啥的公式这里不说了,有兴趣的可以自己搜搜..) (1)所有
php mysql索引的类型和优缺点
现在来介绍了数据库索引,及其优、缺点。针对MySQL索引的特点、应用进行了详细的描 述。分析了如何避免MySQL无法使用,如何使用EXPLAIN分析查询语句,如何优化MySQL索引的应用。 那就下来我们就说一下什么是索引吧        索引就是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。 注:[1]索引不是万能的!索引
Java面试基础-MySQL数据库的四种索引类型
索引类型主要包括:普通索引,唯一索引,主键索引和组合索引。 (1)普通索引,就是直接创建简单的索引。CREATE INDEX indexName ON mytable(username(length)); (2)唯一索引,与普通索引类似,不同的是,Mysql的索引列值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。有以下几种创建方式:CTEATE UNIQUE INDEX ind...
mysql的存储引擎类型和索引类型
mysql的存储引擎,常用的有innodb和myisam innodb支持外键,事务,行锁,安全性更高,写入快查询慢,适合大数据量 myisam查询快写入慢,支持全文索引,表锁(MyISAM同一个表上的读锁和写锁是互斥的,容易阻塞), (myisam一个table实际保存为三个文件,.frm存储表定义,.MYD存储数据,.MYI存储索引) (表锁是把整个表锁住,不能写,行锁
MySQL索引——最左前端
一、索引的概念
mysql索引类型以及适用场景
1.普通索引 最基本的索引,没有任何限制 2.唯一索引 索引列的值必须唯一,但允许有空值 3.主键索引 主键索引属于一种特殊的唯一索引,不允许有空值 4.单列索引 单个多列索引(组合索引)效率高于多个单列索引 5.最左前缀(Leftmost Prefixing):多列索引 多列索引只有在where条件中含有索引中的首列字段时才有效 例如:fnam
mysql中索引数据结构简介
一、简介 mysql索引的数据结构是树,常用的存储引擎innodb采用的是B+Tree。这里对B+Tree及其相关的 查找树进行简要介绍。 二、各种查找树 1、二叉排序树(也称为二叉查找树) 二叉排序树是最简单的查找树,特点: a)是一棵二叉树; b)左子树所有结点的值小于它的父结点的值,右子树所有结点的值大于它的父结点的值。 2、平衡二叉树(又称AVL树) 平衡二叉树是二叉排序...
数据库索引原理,及MySQL索引类型
MySQL索引类型一览 让MySQL高效运行起来 本文介绍了七种MySQL索引类型。在数据库表中,对字段建立索引可以大大提高查询速度。通过善用这些索引,可以令MySQL的查询和运行更加高效。 索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。 在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable...
Mysql索引类型以及适用场景
1.普通索引  最基本的索引,没有任何限制  2.唯一索引  索引列的值必须唯一,但允许有空值  3.主键索引  主键索引属于一种特殊的唯一索引,不允许有空值  4.单列索引  单个多列索引(组合索引)效率高于多个单列索引  5.最左前缀(Leftmost Prefixing):多列索引 多列索引只有在where条件中含有索引中的首列字段时才有效  例如:fname_lname_age索引,  以...
MySQL InnoDB索引介绍及优化(初学者)
什么是索引?索引(index)翻译为一个目录,用于快速定位我们想要找的数据的位置。例如:我们把一个数据库比作一本书,而索引(index)就是书中的目录,此刻要找到书的某个感兴趣的内容,我们一般是不会整本书翻完再去确认该内容在哪里,而是通过书的目录,定位到该内容章节所在页数,最后直接翻到该页面。我们来看看在数据库中的索引:全表扫描 VS 索引扫描以字典为例,全表扫描就是如果我们查找某个字时,那么通读一
Mysql索引类型normal,unique,full text的区别
问题1:mysql索引类型normal,unique,full text的区别是什么? normal:表示普通索引 unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique full text: 表示 全文搜索的索引。 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可...
mysql索引类型Normal,Unique,Full Text区别及索引方法Btree,Hash的区别
mysql索引类型Normal,Unique,Full Text区别 Normal:表示普通索引,大多数情况下都可以使用 Unique:约束唯一标识数据库表中的每一条记录,即在单表中不能用每条记录是唯一的(例如身份证就是唯一的),Unique(要求列唯一)和Primary Key(primary key = unique + not null 列唯一)约束均为列或列集合中提供了唯一性的保证,P...
Mysql索引类型Btree和Hash的区别以及使用场景
遇到单表数据量大的时候很多开发者都会想到给相对的字段建立索引来提高性能(mysql索引的使用),但很少会去关注索引的类型该如何选择,在mysql中支持有两种类型,最常用的也是默认的Btree类型,其次就是最容易被忽略的Hash类型。下面将分别介绍两种索引类型的区别。 Btree类型的索引,Btree又称b+树 (1)所有关键字都出现在叶子结点的链表中(稠密索引),且链表中的关键字恰好...
Mysql的索引是什么?如何创建索引?创建索引的原则?怎么优化?
索引的理解: 索引是对数据库表中的一列或多列的值进行排序的一种数据结构。 索引的作用就类似于书本的目录,新华字典的拼音,偏旁部首的首查字,可以快速的检索到需要 的内容,mysql在300万条记录性能就下降了,虽然mysql官方文档说达500万~800万,所以当数据 达到几百万的时候,那么索引就很有必要了。 当表中有大量记录的时候,若要对表进行查询,第一种就是就需要把表中的记录全部取出来,在 和查...
mysql的索引类型以及优缺点
一、索引       索引被用来快速找出在一个列上用一特定值的行。没有索引,MySQL不得不首先以第一条记录开始并然后读完整个表直到它找出相关的行。       数据表越大,花费时间越多。如果表对于查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必...
mysql索引类型:FULLTEXT、NORMAL、SPATIAL、UNIQUE的详细介绍
mysql索引类型:FULLTEXT、NORMAL、SPATIAL、UNIQUE的详细介绍Normal 普通索引Unique 唯一索引Full Text 全文索引SPATIAL 空间索引btree索引和hash索引的区别在实际操作过程中,应该选取表中哪些字段作为索引? Normal 普通索引 表示普通索引,大多数情况下都可以使用 Unique 唯一索引 表示唯一的,不允许重复的索引,如果该字段信息...
mysql索引总结----mysql 索引类型以及创建
关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢。还是以WordPress来说,其多个数据表都会对经常被查询的字段添加索引,比如wp_comments表中针对5个字段设计了BTR
MYSQL的索引类型有什么区别?各适用于什么场合?——摘自baidu
PRIMARY, INDEX, UNIQUE 这3种是一类 PRIMARY 主键。 就是 唯一 且 不能为空。 INDEX 索引,普通的 UNIQUE 唯一索引。 不允许有重复。 FULLTEXT 是全文索引,用于在一篇文章中,检索文本信息的。 举个例子来说,比如你在为某商场做一个会员卡的系统。 这个系统有一个会员表 有下列字段: 会员编号 INT 会员姓名 VARCHAR(10) 会员
MySQL四种常用索引类型
提到MySQL优化,索引优化是必不可少的。其中一种优化方式 ——索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升。 我们知道项目性能的瓶颈主要是在”查(select)”语句,要提升”查”这一性能,mysql索引是必不可少的。接下来总结一下mysql常见的四种索引 一. 四种索引(主键索引/普通索引/全文索引/唯一索引) 1.索引的添加  1.1主键索引的添加 当一张表,把某个列设
mysql索引总结_mysql 索引类型以及创建
文章归属:http://feiyan.info/16.html  自己还是小白,从借鉴别人的东西开始学习。     关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢。还
Mysql几种索引方式的区别及适用情况
Mysql目前主要有以下几种索引方式:FULLTEXT,HASH,BTREE,RTREE。 那么,这几种索引有什么功能和性能上的不同呢? FULLTEXT 即为全文索引,目前只有MyISAM引擎支持。其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,不过目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引。值得一提的是,在数据量较大
MYSQL索引底层的数据结构
转自:http://blog.codinglabs.org/articles/theory-of-mysql-index.html摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTre...
Mysql的ENUM类型,查询索引值
2010-10-12 19:48 对ENUM枚举类型直接SELECT的话,查到的都是枚举值,想要查到索引值的话,只需要”+0“ mysql> SELECT enum_col+0 FROM tbl_name;
Mysql索引结构及常见索引的区别
一、Mysql索引主要有两种结构:B+Tree索引和Hash索引 Hash索引 mysql中,只有Memory(Memory表只存在内存中,断电会消失,适用于临时表)存储引擎显示支持Hash索引,是Memory表的默认索引类型,尽管Memory表也可以使用B+Tree索引。Hash索引把数据以hash形式组织起来,因此当查找某一条记录的时候,速度非常快。但是因为hash结构,每个键只对应一个值...
mysql字段类型为char类型,建立索引但未使用原因
最近在做mysql索引测试,新建了一个数据表,为两个字段分别建立普通索引,本来是为了测试其他的情况做准备,开始之前,分别对这两个字段进行了一个简单的查询操作,explain一下不当紧,一下颠覆了我的认知,我明明只是使用了where  字段名=字段值  操作,按理说应该是走索引的呀,为什么不走了?不甘心,我又测试几遍,type类型都是ALL,全表查询,为什么,难道where  字段名=字段值本来就不
MYSQL数据库四种索引类型的简单使用
MYSQL数据库索引类型包括普通索引,唯一索引,主键索引与主键索引,这里对这些索引的做一些简单描述: (1)普通索引 这是最基本的MySQL数据库索引,它没有任何限制。它有以下几种创建方式: 创建索引 CREATE INDEX indexName ON mytable(username(length));  如果是CHAR,VARCHAR类型,length可以小于字段实际
Mysql索引有哪几种类型
索引是一种将数据库中单列或者多列的值进行排序的结构。应用索引可以大幅度提高查询的速度。 用户通过索引查询数据,不但可以提高查询速度,也可以降低服务器的负载。用户查询数据时,系统可以不必遍历表中的所有记录,而是查询索引列。 但是,凡事都有双面性。对于依赖关系的子表和附表之间的联合查询时,使用索引可以提高查询速度,并且可以提高整体的系统性能。但是创建索引和维护需要耗费时间,并且该耗费时间与数据量的...
innodb存储引擎 索引的类型和使用
索引的类型和使用 1.索引的类型及其特点 1.1类型 普通索引 唯一索引 全文索引(FULLTEXT)
【0052】mysql索引类型及索引方法
mysql索引类型normal,unique,full text的区别是什么? normal:表示普通索引 unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique full textl: 表示 全文搜索的索引。 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。
Mysql索引---Hash索引和Btree索引区别
索引名 hash Btree 支持最左前缀匹配原则? 不支持,只有索引的全部字段都用上才会匹配到 支持,用上索引的第一个字段就可以匹配索引 MyISAM和InnoDB是否支持? 不支持(只有Memory和NDB引擎索引支持) 支持 范围查询能否命中索引? 不可以,只有“=”,“IN”,“<=>”(等价于的意思)查询能命中 可以 一定会全表扫描吗? 是 否 ...
MySQL字段为varchar类型和int类型索引的使用技巧
MySQL索引使用:字段为varchar类型时,条件要使用' '包起来 结论: 当MySQL中字段为int类型时,搜索条件where num=‘111‘ 与where num=111都可以使用该字段的索引。 当MySQL中字段为varchar类型时,搜索条件where num=‘111‘ 可以使用索引,where num=111 不可以使用索引 验证过程: 建表语句: CREA...
MySQL中MyISAM和InnoDB的索引方式以及区别与选择
一、索引 1、什么是索引       索引是一种帮助mysql高效的获取数据的数据结构,这些数据结构以某种方式引用数据,这种结构就是索引。可简单理解为排好序的快速查找数据结构。如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。 具体的参考: http://www.2cto.com...
MySQL索引类型及索引方法
MySQL索引类型 主键索引 PRIMARY:主键索引。索引列唯一且不能为空;一张表只能有一个主键索引(主键索引通常在建表的时候就指定); 普通索引 NORMAL:普通索引。索引列没有任何限制; 唯一索引 UNIQUE:唯一索引。与前面的普通索引类似,不同的就是:索引列的值必须是唯一的,但允许有空。如果是组合索引,则列值的组合必须唯一; 全文索引 FULLTEXT:全文...
MySQL支持的索引类型(B-Tree索引、hash索引)
  索引,是存储引擎用于快速找到记录的一种数据结构。尤其是在表中的数据量越来越大时,索引对于性能的提升非常关键。今天先聊一聊MySQL支持的两种主要的索引类型。      在MySQL中,存储引擎在使用索引时,会先在索引中找到对应值,然后根据所匹配的索引记录找到对应的数据行。例如: select name from user where id = 10;   若在id列上建有索引...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 人工智能中深度学习是什么 数据库中课程名是什么