MySQL数据库索引

前言

存储引擎是数据库的核心,常用的MySQL存储引擎有InnoDB,MyISAM,memory.索引是加速数据的查询的一种数据结构.

1. 索引简介

1.1 索引优点

  1. 查询数据块
  2. 数据唯一性
  3. 加速表之间的连接

1.2 索引缺点

  1. 索引会占用存储空间,可能比本身的表数据还大
  2. 只对查有利,增加了增删改的负担

1.3 使用索引的注意事项

  1. 字段值差别大的数据使用索引(性别列就不要用索引了)
  2. 字符字段可以只选取字段的前几位字符建立索引,能简少存储数据.

2.两个重要存储引擎InnoDB和MyISAM

2.1 InnoDB

2.1.1 特点

  1. 支持事务
  2. 处理数据量巨大
  3. 表数据和索引分开存储
  4. 支持行级锁定
  5. 缺省 6B长度主键
  6. 主键本身就是索引,其索引映射的不是地址,而是主键,从而找到行记录

2.1.2 InnoDB索引

只支持B+树

2.2 MyISAM

2.2.1 特点

  1. 不支持事务
  2. 插入和查找极快
  3. 不支持事务
  4. 单纯增查数据的首选

2.2.2 MyISAM索引

只支持B+树

2.2.3 memory索引

支持 B+树和HASH
MySQL数据库一般默认innoDB存储引擎.

3. 索引的分类

  1. 普通索引和唯一索引
  2. 单列索引和组合索引(组合索引:最左匹配才能使用)
  3. 全文索引:创建分词,为每个分词映射地址,从而通过找到索引中的分词而找到数据的地址.
  4. 空间索引

4. 索引设计原则

  1. 并非越多越好.
  2. 避免对经常更新的表建立过多索引.
  3. 数据量小的表不使用索引.
  4. 索引应该建立在值差异较大的列上.
  5. 频繁分组操作表上建立组合索引.
  6. 尽量使用短索引,节省磁盘空间.
    原文作者:赵栩彬
    原文地址: https://segmentfault.com/a/1190000018633779
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞