存储引擎
mysql 体系结构
存储引擎介绍
最最常用的是InnoDB 也是mysql默认
查询
创建
修改
存储引擎的选择
索引(查询快,本质是数据结构)
分类
按功能分类
按结构分类
创建索引
哪个表的那个列添加索引
查看索引
主键表自带主键索引,外键表自带外键索引
添加索引
删除索引
索引的原理----磁盘存储
原理
磁盘存储
索引的原理----BTree数据结构
特点:
- 每个磁盘块都存储着 键的值 和 数据的值
- 根据磁盘读取数据的特点(读取数据先把磁盘块读取出来,再去读取相关数据)如果读取目标数据,相关联的磁盘块也会读取,这样磁盘的IO次数增加查询效率低。
索引的原理----B+Tree数据结构
特点:
好处:
索引的原理----设计原则
1.遵循的规则
2.最左匹配原则(组合索引)
锁
并发访问数据的时候,保证数据的安全性
锁机制
数据库为保证数据的一致性,在共享的资源被并发访问时变的安全所涉及的一种规则
保证数据的一致性安全性
分类
操作分类
InnoDB共享锁(读锁)
特点:可被多个事物查询,但是不能修改,共享锁和共享锁可以共存,用带索引的列加共享锁加的是行锁,
不用带索引的列加共享锁加的是表锁
创建共享锁
演示:
====InnoDB ====
建表
一
二
三
MylSAM(不支持事物)
读锁
读锁所有连接只能查询数据不能修改数据
演示
粒度分类
写锁
其他连接不能查询和修改数据
使用方式分类
悲观锁和乐观锁
乐观锁实现方式(加标记的思想)
MyCat
对数据库集群统一管理
主从复制
读写分离
分库分表
1水平拆分
表的id数据对表的数量取余 放在表中 取摸拆分法 10001%3
2垂直拆分