MySQL数据存储引擎/索引

1.引擎

        概述:

        存储引擎就是存储数据,建立索引,更新/查询数据技术实现的方式。存储引擎是基于表的,而不是基于库的,也称为表类型

  • 在创建表时可以指定存储引擎

                语法:

CREATE TABLE

(

        字段1 类型 

        ........

         字段n  类型

)ENGINE = InnDB(默认)

查看存储引擎show  engines
  • InnoDB存储引擎的特点

                介绍:是一种高可靠高性能的存储引擎

        1)支持事务

        2)行级锁,提高并发访问性能

        3)支持外键,保证数据的完整性和正确性

  • MyISAM存储引擎特点

                介绍:是早期的默认存储引擎

        1)不支持事务,不支持外键

        2)支持表锁,不支持行锁

        3)访问速度快

  • Memory存储引擎特点

                介绍:Memory表数据是存储在内存中的,由于受到硬件问题,或断电问题的影响,只能将这些表作为临时表或缓存使用

        1)内存存放

        2)支持hash索引

2.索引

        概述:索引是帮助mysql高效获取数据的一种数据结构

        mysql的索引是在存储引擎层实现的,不同的存储引擎有不同的结构:

索引结构描述
B+tree索引最常用的索引结构,大部分存储引擎都支持
Hash索引底层数据结构使用哈希索引实现的,只有精确匹配到列查询才有效,不支持范围查询的
R-tree(空间索引)空间索引是MyISM的一种特殊索引,用的较少
Full-text(全文索引)是一种通过倒排索引,快速匹配文档的方式

        支持的存储引擎

         hash索引的特点:

                1)hash索引只能用来对等比较,不支持范围索引

                2)无法利用hash索引来排序

                3)查询效率高,通常只需要一次检索就可以了,效率通常要高于B+tree索引

  • 索引分类

          在InnoDB存储引擎中根据索引的存储形式分为两种 :

分类含义特点
聚焦索引将数据存储和索引放到了一块,索引结构的叶子节点保存了行数据必须有,而且只有一个
二级索引将数据与索引分开存储,叶子节点关联的是对应的主键可以存在多个
  • 索引语法

        创建索引

CREATE [INDEX|FULLTEXT]  INDEX 索引名  ON  表名 

        查看索引

SHOW INDEX FROM  表名

        删除索引

DROP  INDEX  索引名  ON  表名

具体语法

 

 

         查看sql执行频率

SHOW GLOBAL STATUS 'Com______'

慢查询日志:指查询时间超过指定参数的语句

        查看执行耗时语句

  •  explain执行计划
EXPLAIN  SELECT  字段列表  FROM  表名  WHERE  条件

         注意:当数据量庞大时,可以针对某个字段创建索引,这样可以提高查询效率

  • 最左前缀法则

                概述:联合索引,需要遵守最左前缀法则。指查询从最左列开始,不跳过索引的每一列。如果跳过某一列,后面的索引列失效;

        具体用法

这是一个联合索引

 

         索引的使用

  • 对所有进行运算操作,索引会失效
  • 对于字符串类型,不加引号,索引会失效
  • 模糊查询,对尾部进行模糊查询,索引不会失效,对头部进行模糊查询索引会失效
  • or连接时,or后面的字段没有索引,索引将会失效
  • 当查询的语句是查询表中大部分数据时,索引会失效

        强制使用某个索引

  •    覆盖索引

在查询中,尽量使用覆盖索引,避免使用select*。

   提醒:

using index condition:查找使用了索引,但是需要回表查询数据

using where,using index:查找使用了索引,但是需要的数据在索引中都能找到,不不需要回表查询

  • 前缀索引

        概述:当字符串类型字段较长时,可以只将字符串的一部分建立索引,这样可以减少索引空间,提高索引效率。

        语法

        索引长度

3. 索引设计原则

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱笑的蛐蛐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值