索引类型

mysql索引类型normal,unique,full text的区别是什么?

normal:表示普通索引

unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique

full textl: 表示 全文搜索的索引。 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。

总结,索引的类别由建立索引的字段内容特性来决定,通常normal最常见。

MySQL目前主要有以下几种索引方法:B-Tree,Hash,R-Tree。

索引方法

一、B-Tree

B-Tree是最常见的索引类型,所有值(被索引的列)都是排过序的,每个叶节点到跟节点距离相等。所以B-Tree适合用来查找某一范围内的数据,而且可以直接支持数据排序(ORDER BY)B-Tree在MyISAM里的形式和Innodb稍有不同:MyISAM表数据文件和索引文件是分离的,索引文件仅保存数据记录的磁盘地址InnoDB表数据文件本身就是主索引,叶节点data域保存了完整的数据记录

二、Hash索引

1.仅支持"=","IN"和"<=>"精确查询,不能使用范围查询:由于Hash索引比较的是进行Hash运算之后的Hash值,所以它只能用于等值的过滤,不能用于基于范围的过滤,因为经过相应的Hash算法处理之后的Hash2.不支持排序:由于Hash索引中存放的是经过Hash计算之后的Hash值,而且Hash值的大小关系并不一定和Hash运算前的键值完全一样,所以数据库无法利用索引的数据来避免任何排序运算3.在任何时候都不能避免表扫描:由于Hash索引比较的是进行Hash运算之后的Hash值,所以即使取满足某个Hash键值的数据的记录条数,也无法从Hash索引中直接完成查询,还是要通过访问表中的实际数据进行相应的比较,并得到相应的结果4.检索效率高,索引的检索可以一次定位,不像B-Tree索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以Hash索引的查询效率要远高于B-Tree索引5.只有Memory引擎支持显式的Hash索引,但是它的Hash是nonunique的,冲突太多时也会影响查找性能。Memory引擎默认的索引类型即是Hash索引,虽然它也支持B-Tree索引

三、R-Tree索引

R-Tree在MySQL很少使用,仅支持geometry数据类型,支持该类型的存储引擎只有MyISAM、BDb、InnoDb、NDb、Archive几种。

转载自:https://www.cnblogs.com/zuochuang/p/8184349.html

mysql索引的方法_mysql索引类型和索引方法相关推荐

  1. mysql 查找相似数据_MySQL学习笔记之索引

    索引是存储引擎用于快速找到记录的一种数据结构. 索引对于良好的性能非常关键.尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要.在数据量较小且负载较低时,不恰当的索引对性能的影响可能还不明显,但 ...

  2. mysql 建立索引的例子_mysql建立合适的索引的例子

    在mysql数据库中,其实建索引也是一门学问,一个表中,索引并不是越多越好,而是适合你的业务才最重要.那么建立索引的时候,我们应该从以下几点去考量. 1. 索引字段越小越好,像varchar(10)肯 ...

  3. mysql的学习要点_MySQL中的联合索引的学习要点总结

    MySQL中的联合索引的学习要点总结 联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a ...

  4. mysql行锁同索引键问题_mysql 锁问题 (相同索引键值或同一行或间隙锁的冲突)

    1.使用相同索引键值的冲突 由于mysql 的行锁是针对索引加的锁,不是针对记录加的锁,所以虽然是访问不同行的记录,但如果是使用相同的索引键,是会出现锁冲突的.设计时要注意 例如:city表city_ ...

  5. mysql数据库存储引擎和索引的描述_Mysql InnoDB引擎的索引与存储结构详解

    前言 在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的. 而MySql数据库提供了多种存储引擎.用户可以根据不同的需求为数据表选择不同的存储引擎,用户也 ...

  6. mysql索引下推原理_MySQL:好好的索引,为什么要下推?

    前段时间有读者提议讲讲索引下推,这期就把这事儿安排上.多余的前言就不赘述了,我们直接开始. 列位坐好! - 思维导图 - 回表操作 对于数据库来说,只要涉及到索引,必然绕不过去回表操作.当然这也是我们 ...

  7. mysql视图 外键_Mysql之视图、索引、外键、触发器、事务

    一.视图: 一.概念:就是一个假表: 二.做用:直观,便于咱们对数据进行观察. 三.建立视图: create view 视图名 as select 字段名1,字段名2 from 表名; 注意:多少个字 ...

  8. mysql 聚合索引和聚簇索引_MySQL 聚簇索引 和覆盖索引

    一.聚簇索引 1.聚簇索引并不是一种单独所以,而是一种数据储存方式. InnoDB 的聚簇索引实际上在同一结构中保存了B-Tree 索引和数据行. 2.当表有聚簇索引时,它的数据行实际上存放在索引的叶 ...

  9. mysql的表是聚集索引组织表_Mysql的Innodb引擎索引总结

    索引的目的是什么? 答:数据库添加索引的目的是为了加快查询速度. 索引的的数据结构是什么? 答:(这里的B是balance)B+树来存储索引,B+树类似于二叉树. B+树是怎么查找数据的? 答:B+树 ...

  10. mysql varchar 自增_Mysql varchar型自增方法

    为了测试,表中仅添加了两列,分别是主键id 和 name列,两列都为varchar类型. 备注:id内容格式为 BHXXXX,如:BH0001 因为主键id不是int类型,想实现自动自增功能,使用内置 ...

最新文章

  1. 新书上市|鲁智深和镇关西是怎么吵起来的?
  2. 利用GPU训练网络时遇到的一些问题
  3. 2013年7月04日_回顾总结
  4. 图论--拓扑排序--判断是否为DAG图
  5. java.lang.IllegalArgumentException: Request header is too large
  6. linux安装软件w,Linux软件安装小结
  7. 操作系统概念学习笔记 10 CPU调度
  8. 随笔:谈谈考研二战如何准备
  9. 数字图像处理-图像复原
  10. 使用递归方式进行二叉树的前中后序遍历
  11. 主板aspm关闭_【装机加人品】主板如何开启与关闭超线程技术?
  12. 数字时代的“文艺复兴”?起底数字藏品,让人欢喜让人愁
  13. Linux基础命令-tar打包压缩文件
  14. 库卡机器人提示“无合适的mam文件“
  15. 排难解纷.浅析孙禄堂先生独步中国武学巅峰的原因
  16. Python 实现子域名查询与爆破
  17. 互助系统定制开发-什么是互助系统?他是如何盈利的?
  18. Metalink Account
  19. 相容问题——贪心算法
  20. Thinkphp底层源码分析第一章

热门文章

  1. 计算机科学与技术专业要选修的课程,计算机科学与技术专业课程探讨
  2. Async注解使用及源码分析
  3. springboot实现数据库读写分离的一款框架
  4. 在Apache环境下成功的运行ASP.NET
  5. 使用Varnish为web网站加速
  6. margin:0 auto和text-aglin:center的区别
  7. linux服务器优化
  8. Silverlight/WPF/WP7一周学习导读(12月6-12月12)
  9. [收藏] 将 DTS 用于业务智能解决方案的最佳实践
  10. rpg游戏地图绘制android,基于Android studio 的rpg游戏大地图的绘制