一,什么是索引?作用是什么?

  1. 索引:对数据库中一列或多列的值进行排序的一种结构
  2. 作用:使用索引可以快速访问数据库表中特定信息(加速检索表中的数据)

二、索引类型

Mysql目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE
1. FULLTEXT
即为全文索引,其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,不过目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引。
全文索引并不是和MyISAM一起诞生的,它的出现是为了解决WHERE name LIKE “%word%"这类针对文本的模糊查询效率较低的问题。
2. HASH
由于HASH的唯一(几乎100%的唯一)及类似键值对的形式,很适合作为索引。
HASH索引可以一次定位,不需要像树形索引那样逐层查找,因此具有极高的效率。但是,这种高效是有条件的,即只在“=”和“in”条件下高效,对于范围查询、排序及组合索引仍然效率不高。
3. BTREE
BTREE索引就是一种将索引值按一定的算法,存入一个树形的数据结构中(二叉树),每次查询都是从树的入口root开始,依次遍历node,获取leaf。这是MySQL里默认和最常用的索引类型。
4. RTREE
RTREE在MySQL很少使用,仅支持geometry数据类型,支持该类型的存储引擎只有MyISAM、BDb、InnoDb、NDb、Archive几种。
相对于BTREE,RTREE的优势在于范围查找

三、索引类型

普通索引:仅加速查询
唯一索引:加速查询 + 列值唯一(可以有null)
主键索引:加速查询 + 列值唯一(不可以有null)+ 表中只有一个
组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并
全文索引:对文本的内容进行分词,进行搜索

ps.
索引合并,使用多个单列索引组合搜索
覆盖索引,select的数据列只用从索引中就能够取得,不必读取数据行,换句话说查询列要被所建的索引覆盖。

四、执行计划

explain + 查询SQL - 用于显示SQL执行信息参数,根据参考信息可以进行SQL优化

什么是索引?索引的作用是什么?Mysql目前主要的几种索引类型相关推荐

  1. mysql+br_mysql有哪几种索引

    从数据结构角度 1.B+树索引(O(log(n))):关于B+树索引,可以参考 MySQL索引背后的数据结构及算法原理 2.hash索引: a 仅仅能满足"=","IN& ...

  2. mysql中常见的几种索引

    索引有哪几种类型? 创建索引 主键索引: 数据列不允许重复,不允许为NULL,一个表只能有一个主键. 唯一索引: 数据列不允许重复,允许为NULL值,一个表允许多个列创建唯一索引. 可以通过 ALTE ...

  3. 什么是索引?Mysql目前主要的几种索引类型 和 引擎区别?

    一.索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的My ...

  4. mysql 索引类型 ref_什么是索引?Mysql目前主要的几种索引类型

    一.索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的My ...

  5. mysql 走索引 很慢_技术分享 | MySQL优化:为什么SQL走索引还那么慢?

    作者:胡呈清 背景 2019-01-11 9:00-10:00 一个 MySQL 数据库把 CPU 打满了. 硬件配置:256G 内存,48 core 分析过程 接手这个问题时现场已经不在了,信息有限 ...

  6. Mysql复习计划(四)- 索引失效和数据库设计规范

    Mysql复习计划(四)- 索引失效和数据库设计规范 一. 索引失效 1.1 数据准备 1.2 最左匹配原则 1.3 计算.函数.类型转换导致索引失效 1.4 范围条件右侧的列索引失效 1.5 不等于 ...

  7. mysql索引如何分裂节点_从MySQL Bug#67718浅谈B+树索引的分裂优化(转)

    原文链接:http://hedengcheng.com/?p=525 问题背景 今天,看到Twitter的DBA团队发布了其最新的MySQL分支:Changes in Twitter MySQL 5. ...

  8. mysql 回退查询_MYSQL数据库表排序规则不一致导致联表查询,索引不起作用问题...

    Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题 表更描述: 将mysql数据库中的worktask表添加ishaspic字段. 具体操作:(1)数据库worktask表新添是否有图片字 ...

  9. mysql改了排序规则不生效_Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题...

    Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题 表更描述: 将mysql数据库中的worktask表添加ishaspic字段. 具体操作:(1)数据库worktask表新添是否有图片字 ...

  10. 数据索引是什么?索引作用是什么?什么样的字段适合建索引?索引的优缺点是什么?

    数据索引是什么?索引作用是什么?什么样的字段适合建索引?索引的优缺点是什么? 数据库索引,是数据库管理系统中一个排序的数据结构,索引的实现通常使用B树及其变种B+树.在数据之外,数据库系统还维护着满足 ...

最新文章

  1. 机器人抓取领域性能评估标准
  2. Mongo 用户管理
  3. oracle构造过程实例
  4. oracle+olh+hive,hadoop+hive+hbase的简单安装 | YallonKing
  5. 谈谈如何学习Linux操作系统
  6. 关于《构建之法》阅读笔记 的致歉博客
  7. POJ NOI MATH-7656 李白的酒
  8. (转)PHP利用Curl、socket、file_get_contents POST数据
  9. Vue + Echarts 实现中国地图的绘制
  10. 硬盘分区整数计算器(如何让硬盘容量成整数)
  11. Gitbub远程仓库的访问
  12. java实现多模匹配算法_多模字符串匹配算法-Aho–Corasick
  13. c语言memcmp函数详解,C语言之memcmp()函数
  14. 类似qvod的流媒体点播服务器架设建议
  15. ast自动扣webpack脚本实战
  16. composer global require fxp/composer-asset-plugin:1.0.0的Not enough arguments解决
  17. 有哪些性价比高的照明品牌?性价比最高的灯具品牌
  18. 京东到家话费券系统NIO实战
  19. C#+winform登陆界面案例
  20. NYoj42 一笔画问题

热门文章

  1. 如何成为数据分析师?数据分析师的职业路线是什么样的?
  2. Windos下的UPD服务器端的C++实现
  3. python 安全编码代码审计
  4. idea更改页面背景颜色设置为护眼颜色
  5. 如何使模糊的图片变清晰?
  6. 从WORD中取出图片(复制或者另存为)后变模糊了,变得不清楚
  7. java 泛型 参数传递子类_超类的Java泛型,但并非所有子类都想定义类型参数
  8. 原装win10下安装双系统win7
  9. iphone屏幕镜像如何全屏_苹果手机投到电视上能全屏嘛
  10. php代码审计(适合小白入门)