目录

一、索引介绍

二、索引的分类

三、常见索引介绍

四、索引的使用

五、索引原则

一、索引介绍

MySQL官方对索引的定义为:索引(index)是帮助MySQL高校获取数据的数据结构

提取句子主干,就可以得到索引的本质:索引是数据结构

二、索引的分类

  • 从索引存储结构划分:B Tree索引、Hash索引、FULLTEXT全文索引、R Tree索引

  • 从应用层次划分:普通索引、唯一索引、主键索引、复合索引

  • 从索引键值类型划分:主键索引、辅助索引(二级索引)

  • 从数据存储和索引键值逻辑关系划分:聚集索引(聚簇索引)、非聚集索引(非聚簇索引)

三、常见索引介绍

主键索引(primary key)

  • 唯一标识,主键不可重复,只有一个列作为主键
  • 不允许有空值

唯一索引(unique key)

  • 避免重复的列出现,多个列都可以标识为唯一索引(唯一索引可以有多个但不可重复)
  • 允许有空值

常规索引(key / index)

  • 默认的,可以用index或key关键字来设置
  • 这是最基本的索引类型,没有任何限制

全文索引(FullText)

  • 查询操作在数据量比较少时,可以使用like模糊查询,但是对于大量的文本数据检索,效率很低。如果使用全文索引,查询速度会比like快很多倍。在MySQL 5.6 以前的版本,只有MyISAM存储引擎支持全文索引,从MySQL 5.6开始MyISAM和InnoDB存储引擎均支持。
  • 作用:快速定位数据
  • 和常用的like模糊查询不同,全文索引有自己的语法格式,使用 match 和 against 关键字,比如:
select * from user where match(name) against('aaa');
  • 全文索引使用注意事项:

1)全文索引必须在字符串、文本字段上建立。

2)全文索引字段值必须在最小字符和最大字符之间的才会有效。(innodb:3-84;

myisam:4-84)

3)全文索引字段值要进行切词处理,按syntax字符进行切割,例如b+aaa,切分成b和aaa

全文索引匹配查询,默认使用的是等值匹配,例如a匹配a,不会匹配ab,ac。如果想匹配可以

在布尔模式下搜索a*

select * from user where match(name) against('a*' in boolean mode);

四、索引的使用

1)在创建表的时候给字段增加索引

2)创建完毕后,增加索引

显示所有的索引信息

SHOW INDEX FROM 表名

增加一个索引

-- ALTER TABLE `表名` ADD FULLTEXT INDEX `索引名`(`指定列名`)
ALTER TABLE `student` ADD FULLTEXT INDEX `studentname`(`studentname`)

查看新增索引(选中表名右击设计表 -> 索引)

五、索引原则

1)索引不是越多越好

2)不要对经常变动的数据加索引

3)小数据量的表不需要加索引

4)索引一般加在常用来查询的字段上

索引介绍及索引的分类相关推荐

  1. HugeGraph 图数据库索引介绍 - 范围索引,全文索引

    目录 HugeGraph 索引介绍 二级索引 组合索引 范围索引 全文索引 HugeGraph 索引介绍 二级索引 创建schema和添加数据 schema.propertyKey("nam ...

  2. 索引介绍、索引原理、索引的数据结构(二叉排序树、平衡二叉树、B树、B+树)

    引入 本篇博客偏理论, 将会介绍一下知识: 索引介绍 索引原理 索引的数据结构(二叉树->平衡二叉树->B树->B+树) 聚集索引与辅助索引 MySQL索引管理 创建和删除索引的语法 ...

  3. PostgreSQL索引介绍

    梦中彩虹 博客园 首页 新随笔 联系 管理 随笔 - 131  文章 - 1  评论 - 14 PostgreSQL索引介绍 INDEX 索引是增强数据库性能的常用方法.索引使得数据库在查找和检索数据 ...

  4. MySQL的索引(普通索引、唯一索引,主键索引、组合索引、全文索引、空间索引)相关操作

    目录 索引介绍 Hash索引和B+tree索引的区别 应用场景 索引分类 普通索引 创建单列索引--普通索引(3种语法) 查看数据库中的索引 查看数据表中的索引 删除索引 唯一索引 主键索引 组合索引 ...

  5. 切备库重建索引 mysql_mysql 重建索引

    RDS for MySQL 全文检索相关问题的处理 RDS for MySQL 全文检索相关问题的处理 RDS MySQL 全文检索相关问题 1. RDS for MySQL 对全文检索的支持 2. ...

  6. Mysql 索引 总结 —— 概述 || 索引优势劣势|| 索引结构(索引是在MySQL的存储引擎层中实现的)|| BTREE 结构||B+TREE 结构||MySQL中的B+Tree||索引分类

    索引概述 MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序). 在数据之外,数据库系统还维护者满足特定查找算法的数据结构, 这些数据结构以某种方式引用(指向 ...

  7. oracle的优化适用于mysql吗_性能优化之数据库优化,适用于Sqlite、Mysql、Oracle、Sql server,详细介绍了索引和事务及部分针对Sqlite的优化...

    本文为性能优化的第一篇--数据库性能优化,原理适用于大部分数据库包括Sqlite.Mysql.Oracle.Sql server,详细介绍了索引(优缺点.分类.场景.规则)和事务,最后介绍了部分单独针 ...

  8. oracle索引介绍

    一.索引介绍 1.1 索引的创建语法: CREATE UNIUQE | BITMAP INDEX <schema>.<index_name> ON <schema> ...

  9. mysql的索引介绍

    一.索引是什么 mysql 官方对于索引的定义为:索引(Index)是帮助 mysql 高效获取数据的数据结构.可以得到索引的本质:索引是数据结构. 我们可以简单的把索引理解为 "排好序的快 ...

最新文章

  1. 【怎样写代码】对象克隆 -- 原型模式(二):解决方案
  2. -bash: make: command not found的解决办法
  3. ubuntu下解决oracle sqlplus不能查看历史命令问题
  4. [转]获取xml节点值和属性值(兼容ie和firefox)
  5. win10家庭版没有device guard_普通用户选择哪个Win10系统版本?家庭版与专业版的对比介绍...
  6. Spring和JSF集成:转换器
  7. 显示请求_学习记录:HTTP的响应与请求amp;Curl
  8. 伺服怎么接单相220伏_乐利网带你认识伺服电机及工作原理
  9. android 库编译报错,Android Studio编译项目报错
  10. qchart 怎么点击一下 出一条线_mastercam9.1教程之Mastercam9.1数控编程里面怎么出多个坐标系...
  11. linux语言yhq,linux通过docker安装kafka
  12. canny算子_在Python中逐步检测Canny边缘 计算机视觉
  13. 2018年《DevOps 现状报告》新鲜出炉:行业脉动与团队发展指导一览
  14. spring之ControllerAdvice注解
  15. 毕业论文Word排版专题
  16. Scratch案例——放烟花
  17. 登录不了WPS国际版,密码正确,在网页能够正常登录,在WPS不行,求解答,版本号是10.2.0.7646已刷语言包
  18. 新年新气象,牛年更牛,开始新的征程
  19. DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution
  20. 简单的python爬虫程序:爬取斗鱼直播人气前五十的主播

热门文章

  1. 远程控制家中的电脑,让家中电脑服务对外访问
  2. htmlimg图片加载失败_动态加载图片失败的默认图显示
  3. 电动加热护颈枕芯片-DLTAP703SC
  4. SQL server 中的插入表行数据,以及插入标识值
  5. Java从入门到精通 第22章 多线程
  6. GDUT_排位赛题解报告_第2场_Fence Planning
  7. 德国PCO科研级相机HS4
  8. Condition 原理解析
  9. 电赛汇总(二):常用传感器电路模块设计
  10. 快手资讯|打不倒的辛巴强势复出!回归首秀GMV近20亿