mysql索引的方法_mysql索引类型和索引方法
索引类型
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索引类型和索引方法相关推荐
- mysql 查找相似数据_MySQL学习笔记之索引
索引是存储引擎用于快速找到记录的一种数据结构. 索引对于良好的性能非常关键.尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要.在数据量较小且负载较低时,不恰当的索引对性能的影响可能还不明显,但 ...
- mysql 建立索引的例子_mysql建立合适的索引的例子
在mysql数据库中,其实建索引也是一门学问,一个表中,索引并不是越多越好,而是适合你的业务才最重要.那么建立索引的时候,我们应该从以下几点去考量. 1. 索引字段越小越好,像varchar(10)肯 ...
- mysql的学习要点_MySQL中的联合索引的学习要点总结
MySQL中的联合索引的学习要点总结 联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a ...
- mysql行锁同索引键问题_mysql 锁问题 (相同索引键值或同一行或间隙锁的冲突)
1.使用相同索引键值的冲突 由于mysql 的行锁是针对索引加的锁,不是针对记录加的锁,所以虽然是访问不同行的记录,但如果是使用相同的索引键,是会出现锁冲突的.设计时要注意 例如:city表city_ ...
- mysql数据库存储引擎和索引的描述_Mysql InnoDB引擎的索引与存储结构详解
前言 在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的. 而MySql数据库提供了多种存储引擎.用户可以根据不同的需求为数据表选择不同的存储引擎,用户也 ...
- mysql索引下推原理_MySQL:好好的索引,为什么要下推?
前段时间有读者提议讲讲索引下推,这期就把这事儿安排上.多余的前言就不赘述了,我们直接开始. 列位坐好! - 思维导图 - 回表操作 对于数据库来说,只要涉及到索引,必然绕不过去回表操作.当然这也是我们 ...
- mysql视图 外键_Mysql之视图、索引、外键、触发器、事务
一.视图: 一.概念:就是一个假表: 二.做用:直观,便于咱们对数据进行观察. 三.建立视图: create view 视图名 as select 字段名1,字段名2 from 表名; 注意:多少个字 ...
- mysql 聚合索引和聚簇索引_MySQL 聚簇索引 和覆盖索引
一.聚簇索引 1.聚簇索引并不是一种单独所以,而是一种数据储存方式. InnoDB 的聚簇索引实际上在同一结构中保存了B-Tree 索引和数据行. 2.当表有聚簇索引时,它的数据行实际上存放在索引的叶 ...
- mysql的表是聚集索引组织表_Mysql的Innodb引擎索引总结
索引的目的是什么? 答:数据库添加索引的目的是为了加快查询速度. 索引的的数据结构是什么? 答:(这里的B是balance)B+树来存储索引,B+树类似于二叉树. B+树是怎么查找数据的? 答:B+树 ...
- mysql varchar 自增_Mysql varchar型自增方法
为了测试,表中仅添加了两列,分别是主键id 和 name列,两列都为varchar类型. 备注:id内容格式为 BHXXXX,如:BH0001 因为主键id不是int类型,想实现自动自增功能,使用内置 ...
最新文章
- 新书上市|鲁智深和镇关西是怎么吵起来的?
- 利用GPU训练网络时遇到的一些问题
- 2013年7月04日_回顾总结
- 图论--拓扑排序--判断是否为DAG图
- java.lang.IllegalArgumentException: Request header is too large
- linux安装软件w,Linux软件安装小结
- 操作系统概念学习笔记 10 CPU调度
- 随笔:谈谈考研二战如何准备
- 数字图像处理-图像复原
- 使用递归方式进行二叉树的前中后序遍历
- 主板aspm关闭_【装机加人品】主板如何开启与关闭超线程技术?
- 数字时代的“文艺复兴”?起底数字藏品,让人欢喜让人愁
- Linux基础命令-tar打包压缩文件
- 库卡机器人提示“无合适的mam文件“
- 排难解纷.浅析孙禄堂先生独步中国武学巅峰的原因
- Python 实现子域名查询与爆破
- 互助系统定制开发-什么是互助系统?他是如何盈利的?
- Metalink Account
- 相容问题——贪心算法
- Thinkphp底层源码分析第一章
热门文章
- 计算机科学与技术专业要选修的课程,计算机科学与技术专业课程探讨
- Async注解使用及源码分析
- springboot实现数据库读写分离的一款框架
- 在Apache环境下成功的运行ASP.NET
- 使用Varnish为web网站加速
- margin:0 auto和text-aglin:center的区别
- linux服务器优化
- Silverlight/WPF/WP7一周学习导读(12月6-12月12)
- [收藏] 将 DTS 用于业务智能解决方案的最佳实践
- rpg游戏地图绘制android,基于Android studio 的rpg游戏大地图的绘制