MySQL概述

一、MySQL架构

二、事务

A  C  I  D

原子性、一致性、隔离性、持续性

三、存储引擎

树形结构中搜索排序是一个概念。

  • 读锁,其余仍可读,不可改;
  • 写锁,其余不可读不可写;

3.1 MyISAM

  • 索引结构B+树
  • 不支持事务,支持全文索引,不支持外键,支持较强的在线分析处理,锁机制 读写锁 表锁 行锁
  • 数据和索引分离:表结构 .frm     索引 .myi    数据  .myd
图1 MyISAM和B+树联系

从图1 可以看到,数据和索引是分离的。 

3.2 InnoDB

  • 索引结构B+树;
  • 支持事务,不支持全文索引,支持外键,支持较强的在线事务处理;
  • 索引当做数据的一部分存放

3.3 Memory

  • hash
  • 位于内存中,text blob;文本类型

3.4 Archive

  • 只支持Insert和select操作;
  • 按照某种压缩算法1:10压缩后的数据;
  • 日志

四、索引

空间换时间

  • 主键索引;
  • 用于两表连接的字段——外键;
  • 经常用于查询的字段。

  • 不经常用于查询的;
  •  可能情况少:例如性别就没必要建立索引。

模糊匹配like:

select * from user like name = “brucee%”;

select * from user like name = “%xiao%” ;

聚簇索引、非聚簇索引。

普通索引 、主键索引、唯一索引、多列索引(性能优先)、全文索引(文本字段)、组合索引(最左前缀规则)。

4.1 针对MyISAM

主键索引,唯一键索引。 非聚集索引

索引查询:select * from stu where id = 1;

非索引查询:select * from stu where name = "zhangsan";

最左前缀原则:从最左边起依次包含。

例如:id,name,age,按照id和name是符合最左前缀的原则的,按照索引方式多路搜索。

辅助索引——修改指针即可。

4.2 针对InnoDB

从图2 可以看到,索引和数据并不是分离的。聚集索引。

  • 找主键 主键索引
  • else 找唯一键 唯一键索引
  • else 添加一个字段auto_increment
图2 InnoDBB+树和B+树联系

辅助索引。例如按照姓名。 叶子结点会额外添加主键字段预防冗余

没有更多推荐了,返回首页