Mysql基础知识点

概述

DDL/DML

https://www.cnblogs.com/kawashibara/p/8961646.html

redo/undo

架构、存储引擎

InnoDB 支持行级锁,对内存要求高,内存大小会直接影响性能。支持事务
MyISAM 支持表级锁,不支持事务。不适合高并发场景和事务性应用。

参考https://blog.csdn.net/qq_35240226/article/details/82960507

InnoDB 默认时行级锁。锁粒度最小,但是可能出现死锁,锁冲突概率小。并发量高。

1.是通过索引加的行锁,所以索引失效,行锁也失效;
2.访问不同的行,但是使用相同的索引,还是会出现锁冲突;
3.使用不同的索引,锁定不同的行;
4.mysql可能觉得全表扫描效率更高从而不适用索引,这个时候会变成表锁;

MyISAM 只支持表级锁,不会死锁,但是锁冲突会出现。并发量最小。

由于MyISAM存储引擎使用的锁定机制完全是由MySQL提供的表级锁定实现,所以下面我们将以MyISAM存储引擎作为示例存储引擎。
1.MySQL表级锁的锁模式
MySQL的表级锁有两种模式:表共享读锁(Table Read Lock)和表独占写锁(Table Write Lock)。锁模式的兼容性:
2.如何加表锁
MyISAM在执行查询语句(SELECT)前,会自动给涉及的所有表加读锁,在执行更新操作(UPDATE、DELETE、INSERT等)前,会自动给涉及的表加写锁,这个过程并不需要用户干预,因此,用户一般不需要直接用LOCK TABLE命令给MyISAM表显式加锁。
在这里插入图片描述
1.创建同表结构的新表;2.修改表结构;3.同步数据,同时创建触发器,再旧表新插入数据时,讲数据更新到新表;4.修改表名

事务

原子性:最小不可分割单元
一致性:从一个状态到另一个状态,不应该有中间状态
隔离性:不同事务之间互不影响
持久性:事务一旦提交,就一定会修改
在这里插入图片描述
脏读 A读了B提交的数据,结果B回滚了,A读了脏数据
不可重复度 A多次读同一条数据,这条数据中间被B修改了,读到的结果不一致了 -需要行锁
幻读:侧重新增,我已经操作了全部数据,但是B新增了一条进来,出现了幻觉。 - 需要表锁
在这里插入图片描述

慢查询

索引

执行计划

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值