索引
(1)什么是索引?
是一种提升查询速度的 特殊的存储结构.
它包含了对数据表里的记录的指针,类似于字典的目录。
当我们添加索引时会单独创建一张表来去存储和管理索引,索引比原数据大,会占用更多的资源.
(2)索引的种类:
普通索引 index
- 普通索引 就是一个普通的索引,可以为空,可以重复。
唯一索引 unique
- 可以为空,不可以重复。
主键索引 primary key
- 不可以为空,不可以重复
(3)索引的优缺点:
索引的优点:
提升查询速度,
通过建立唯一索引保证数据的唯一性
缺点:
索引需要占用更多物理空间,
增加了后期的维护成本
降低增删改操作的效率
(4)索引可以提升查询速度,是不是添加的索引越多,越好?
数据量比较大时可以使用索引.
给经常用于where查询条件的字段添加索引还要考虑当前字段数据的重复量.如果当前字段数据的重复量大于30% 不建议添加索引
数据重复量过大添加索引,反而会降低查询速度.
在使用索引查询数据时,一定要遵循最左原则
将有所索引的字段放在条件的最左边(先查询有索引的字段)
(5)索引的操作:
添加索引:
在建表时添加索引
表键好之后添加
ALTER TABLE 表名 ADD 索引类型 [索引名] (字段名);
查看索引:
SHOW INDEX FROM 表名;
删除索引
DROP INDEX 索引名 ON 表名;
注意: 删除主键索引必须先去除主键索引的自增属性,然后执行
ALTER TABLE 表名 DROP PRIMARY KEY;
(6)索引的实现(了解):
从存储结构上来划分:BTree 索引(B-Tree 或 B+Tree 索引),Hash 索引,full-index 全文索引,R-Tree 索
引,但是 MySQL 的 InnoDB 数据库引擎,只支持 B+Tree 索引。
HASH索引:
基于哈希表实现,只有精确匹配索引所有的列查询才有效,对于每一行数据,存储引擎会对于所有的索引类列计算一个
哈希码,并且hash索引将所有的哈希码存储在索引中,同时索引表中保存指向每个数据的指针哈希索引能够最快的进行数据定位,对于固定的数据查询效率很高,对于范围性的查询,因为HASH索引的不连续性,查
询性能会下降.
B-Tree索引:
B-Tree能加快数据的访问速度,存储引擎不在需要全表扫描,数据分布在各个节点之中
B+Trree
数只存储在叶子节点,上一个叶子节点中还会记录下一个叶子节点的地址
6、视图

mysql 索引介绍与运用的更多相关文章

  1. mysql性能优化-慢查询分析、优化索引和配置 MySQL索引介绍

    MySQL索引介绍 聚集索引(Clustered Index)----叶子节点存放整行记录辅助索引(Secondary Index)----叶子节点存放row identifier-------Inn ...

  2. MySQL索引介绍

    引言 今天Qi号与大家分享什么是索引.其实索引:索引就相当于书的目录 索引介绍 用官方的话说就是 索引是为了加速对表中数据行的检索而创建的一种分散的存储结构.索引是针对表而建立的,它是由数据页面以外的 ...

  3. Mysql索引介绍及常见索引(主键索引、唯一索引、普通索引、全文索引、组合索引)的区别

    Mysql索引概念:说说Mysql索引,看到一个很少比如:索引就好比一本书的目录,它会让你更快的找到内容,显然目录(索引)并不是越多越好,假如这本书1000页,有500也是目录,它当然效率低,目录是要 ...

  4. Mysql索引介绍及常见索引的区别

    关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车.对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型 ...

  5. MySQL索引介绍+索引的存储类型+索引的优点和缺点+索引的分类+删除索引

    什么是索引? 索引用于快速找出某个列中有一特定值的行,不使用索引,mysql必须从第1条记录开始读完整的表,直到找出相关的行.表越大,查询数据所花费的实际越多.如果表中查询的列有一个索引,mysql能 ...

  6. Mysql系列(六)—— MySQL索引介绍

    前言 索引种类 索引维护 如何使用索引 一.索引索引种类 MySQL中索引主要包含以下几种: 普通索引 唯一索引 主键索引 联合索引 全文索引 二.索引维护 在简述了索引的类型后,再来了解下如何维护索 ...

  7. MySQL索引介绍和实战

    索引是什么 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构. 可以得到索引的本质:索引是数据结构,索引的目的是提高查询效率,可以类比英语新华字典,根据目录定位词 ...

  8. Mysql索引(一篇就够le)

    我想很多人对mysql的认知可能就是CRUD(代表创建(Create).更新(Update).读取(Retrieve)和删除(Delete)操作),也不敢说自己会用和熟悉mysql,当然我就是其中一个 ...

  9. php面试专题---Mysql索引类型、介绍及优点

    php面试专题---Mysql索引类型.介绍及优点 一.总结 一句话总结: 精品视频讲解里面的资料来源也是通过各种资料,比如博客.书等,只不过是基于讲解者的知识体系有整理的过程 1.B-Tree索引三 ...

随机推荐

  1. @JSONField与@DateTimeFormat 注解(Day_21)

    @JSONField的常用参数说明 @JSONField(ordinal = 1)   //指定json序列化的顺序 @JSONField(serialize = false)    //json序列 ...

  2. python 匹配中文字符

    参考: http://hi.baidu.com/nivrrex/blog/item/e6ccaf511d0926888d543071.html           http://topic.csdn. ...

  3. CAS(Compare and Swap)无锁算法-学习笔记

    非阻塞同步算法与CAS(Compare and Swap)无锁算法 这篇问题对java的CAS讲的非常透彻! 锁的代价 1. 内核态的锁的时候需要操作系统进行一次上下文切换,加锁.释放锁会导致比较多的 ...

  4. libevent中的事件机制

    libevent是事件驱动的网络库,事件驱动是他的核心,所以理解事件驱动对于理解整个网络库有很重要的意义.       本着从简入繁,今天分析下单线程最简单的事件触发.通过sample下的event- ...

  5. DelayQueue延迟队列原理剖析

    DelayQueue延迟队列原理剖析 介绍 DelayQueue队列是一个延迟队列,DelayQueue中存放的元素必须实现Delayed接口的元素,实现接口后相当于是每个元素都有个过期时间,当队列进 ...

  6. camera数字降噪(DNR)

    camera数字降噪(DNR) 闭路电视摄像机 无论多么出色和弱光,在黑暗中拍摄视频监控录像时都会不可避免地产生一些噪音.噪声是任何电子通信中不可避免的部分,无论是视频还是音频.本质上是静态的–视频信 ...

  7. MindSpore 高阶优化器

    MindSpore 高阶优化器 MindSpore自研优化器THOR(Trace-based Hardware-driven layer-ORiented Natural Gradient Desce ...

  8. 深度学习Dropout技术分析

    深度学习Dropout技术分析 什么是Dropout? dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃.注意是暂时,对于随机梯度下降来说,由于是随机 ...

  9. A,B,C,D分别为不同的整数,满足以下乘法公式,求A,B,C,D的值

    问题:A,B,C,D分别为不同的整数,满足以下乘法公式,求A,B,C,D的值 解题思路: 由题意可知A,B,C,D为不同的整数,则A!=B,A!=C,A!=D,B!=C,B!=D,C!=D 再由给出公 ...

  10. webgl变换:深入图形平移

    在以前的文章里,不管是绘制图形,绘制点亦或者是改变色值,所有的内容都是静态的. 在 webgl 里,图形的运动分为 平移.旋转.缩放 三种类型. 接下来,我们会从零基础开始,一点一点来深入了解图形如何 ...