mysql学习笔记
文章平均质量分 90
个人学习使用
大龄码农生活
这个作者很懒,什么都没留下…
展开
-
mysql 学习---InnoDB 锁机制解析 Next-Key Locks
InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。这里就着重介绍下它的锁机制。 锁是用于管理不同事务对共享资源的并发访问。一、InnoDB锁类型1.1、 InnoDB锁基本类型:1、共享锁(行锁):Shared Locks 又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改;2、排它锁(行锁):Exclusive Locks 又称为写锁,简称X锁,排他锁不...原创 2020-11-24 11:31:53 · 815 阅读 · 0 评论 -
面试被问delete后有必要加 limit么 ?
在业务场景要求高的数据库中,对于单条删除和更新操作,在 delete 和 update 后面加 limit 1 绝对是个好习惯。比如,在删除执行中,第一条就命中了删除行,如果 SQL 中有 limit 1;这时就 return 了,否则还会执行完全表扫描才 return。效率不言而喻。 那么,在日常执行 delete 时,我们是否需要养成加 limit 的习惯呢?是不是一个好习惯呢? 在日常的 SQL 编写中,你写 delete 语句时是否用到过以下 SQL? de...原创 2021-01-30 10:47:44 · 407 阅读 · 0 评论 -
mysql 学习--Change Buffer和flush
一、Change Buffer对于读请求,缓冲池(buffer pool)能够减少磁盘IO,提升性能。问题来了,那写请求呢?Change Buffer的处理过程对非唯一的普通索引的新增或更新操作,如果索引B+树的需要新增或更新的数据页不在内存中,则直接更新change buffer,等到后面需要使用这个数据页(真正读到内存中来)的时候,再根据change buffer在内存中做merge合并操作。当需要更新一个数据页时,如果数据页在内存中就直接更新,而如果这个数据页还没有在内存中的话,在不影原创 2020-11-25 16:49:52 · 571 阅读 · 0 评论 -
mysql 学习--缓冲池(buffer pool)
应用系统分层架构,为了加速数据访问,会把最常访问的数据,放在缓存(cache)里,避免每次都去访问数据库。操作系统,会有缓冲池(buffer pool)机制,避免每次访问磁盘,以加速数据的访问。MySQL作为一个存储系统,同样具有缓冲池(buffer pool)机制,以避免每次查询数据都进行磁盘IO。今天,和大家聊一聊InnoDB的缓冲池。InnoDB的缓冲池缓存什么?有什么用?缓存表数据与索引数据,把磁盘上的数据加载到缓冲池,避免每次访问都进行磁盘IO,起到加速访问的...转载 2020-11-25 14:50:47 · 163 阅读 · 0 评论 -
mysql 学习--MVCC 多版本控制和事务隔离级别
MVCC: Multiversion concurrency control (多版本并发控制)解释: 并发访问(读或写)数据库时,对正在事务内处理的数据做多版本的管理。以达到用来避免写操作的堵塞,从而引发读操作的并发问题。一、 简介在可重复读隔离级别下,事务在启动的时候就“拍了个快照”。注意,这个快照是基于整库的。这时,你会说这看上去不太现实啊。如果一个库有 100G,那么我启动一个事务,MySQL 就要拷贝 100G 的数据出来,这个过程得多慢啊。可是,我平时的事务执行起来很快啊。.原创 2020-11-24 14:35:16 · 358 阅读 · 0 评论 -
mysql 学习---索引优化学习
正确的创建合适的索引 是提升数据库查询性能的基础。一、前言写数据库,我第一时间就想到了MySQL、Oracle、索引、存储过程、查询优化等等。不知道大家是不是跟我想得一样,我最想写的是索引,为啥呢?以下这个面试场景,不知道大家熟悉不熟悉:面试官:数据库有几千万的数据,查询又很慢我们怎么办?面试者:加索引。面试官:那索引有哪些数据类型?索引是怎么样的一种结构?哪些字段又适合索引呢?B+的优点?聚合索引和非聚合索引的区别?为什么说索引会降低插入、删除、修改等维护任务的...原创 2020-10-22 16:15:22 · 119 阅读 · 0 评论 -
mysql 优化学习---mysql几个重要的日志
一、前言 MySQL中有以下日志文件,分别是: 1、redo log(重做日志,物理日志):属于 InnoDB引擎,redo log记载的是物理变化(xxxx页做了xxx修改),因为redo log是顺序IO,所以写入的速度很快。作用是为持久化,写完内存挂了恢复数据。2、bin log(归档日志,逻辑日志):Server层日志。bin log记载的是update/delete/insert这样的SQL语句。 作用: 1)复制数据:主从复制主要是根据这个日志来.。2)恢复...原创 2020-10-22 16:15:08 · 288 阅读 · 0 评论 -
mysql 优化学习 ---mysql基础架构
学习 极客时间 丁奇老师的MySQL实战45讲,这里做学习总结方便记忆。很多东西都是丁老师的原话。 今天一起把 MySQL 拆解一下,看看里面都有哪些“零件”,希望借由这个拆解过程,让你对 MySQL 有更深入的理解。这样当我们碰到 MySQL 的一些异常或者问题时,就能够直戳本质,更为快速地定位并解决问题。 MySQL 的基本架构示意图,从中你可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程。 ...原创 2020-10-22 16:14:50 · 86 阅读 · 0 评论