mysql
文章平均质量分 57
mysql笔记分享
中国国民杨某
这个作者很懒,什么都没留下…
展开
-
09.change buffer
change buffer 1.innoDB数据按数据页为单位读写,读一条记录,不是将记录本身从磁盘读出,以页为单位整体读入内存,数据页大小默认16KB 1.更新过程 1.更新数据页,数据页在内存中直接更新,数据页还没有在内存中,inooDB将更新操作缓存congruentchange buffer 下次查询需要访问这个数据页时,将数据页读入内存,执行change buffer 中这个页的操作 2.change buffer : 是持久化的数据,change buff原创 2022-03-03 11:34:19 · 148 阅读 · 1 评论 -
08.事务隔离2
事务隔离 1.马上使用事务可以用srart transaction with consistent snapshot命令 2.视图的两个概念: 1)view,查询语句定义的虚拟表,调用时候执行查询语句生成结果, 执行语法create view …查询方法和表一样 2)consistent read view,用于支持RC(Read Committed,读提交)和RR(Repeatable REad 可重复读)隔离级别的实现。 没有物理结构,作用是事务执行期间定义能看到的数据 1.快照在MVC原创 2022-03-03 11:32:57 · 102 阅读 · 0 评论 -
06.全局锁和表锁
全局锁和表锁 1.锁的初衷处理并发问题、多用户共享资源,出现并发访问、数据库需要控制资源的访问规则,锁用来实现访问规则的重要数据结构。 2.根据加锁的范围,mysql分为全局锁、表 1.全局锁 1.全局锁对整个数据库实例加锁。命令:Flush tables with read lock (FTWRL)让整个库处于只读状态 但之后的其他线程的会阻塞: 更新语句(增删改)、数据定义语句(建表、改表)、更新类事务的提交语句 2.全局锁的使用场景:全库逻辑备份,库的表都存储为文本,备份原创 2021-12-30 22:15:45 · 160 阅读 · 0 评论 -
04.mysql索引类型
索引类型 1.索引出现为了提高数据查询速度 2.索引常见模型为哈希表、有序数组、搜索树 3.哈希表为键值存储的数据结构 存储逻辑:把值放在数组里,用一个哈希函数把key换成确定的位置,把value放在数组的这个位置,多个key值经过哈希函数的换算,会出现同一个值的情况 哈希表无序,所以哈希表做区间查询效率不高 ,只适用于只有等值查询的场景如Memcached引擎 4.有序数组在等值查询和范围查询性能优秀 有序数组更新效率低,插入数据必须挪动后面的所有记录,有序数组只适用于静态存储引擎原创 2021-12-30 22:14:46 · 277 阅读 · 0 评论 -
03.mysql事务隔离
事务隔离 1.事务要么全部成功,要么全部失败。 2.事务在引擎层 3.事务不是所有引擎都支持 4.原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持久性(Durability)ACID 1.隔离性和隔离级别 1.数据库多个事务同时执行,可能出现脏读(dirty read)、不可重复度(nonrepeatable read)、幻读(phantom read),事务隔离为了解决问题 2.隔离越严,效率越低;sql标准事务隔离:读未提交(re原创 2021-12-30 22:14:12 · 287 阅读 · 0 评论 -
1.mysql基础架构
咳咳分享七篇笔记,建议大家还是先去看看书看看专栏在查漏补缺一下,不介意新手看,主要是今天想摸鱼不想学习了,时不时更新 基础架构 1. MySQL可以分为Server层和存储引擎层两部分;server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖了大多数核心服务,以及所有的内置函数、跨存储印象的功能也在这一层(存储过程、触发器、试图等) 2. 储存引擎层复制数据的存储和提取 ,其架构模式是插件式的,目前最常用的引擎是innoDB== mysql5.5.5成为默认存储引擎 3.执行建原创 2021-12-30 22:12:02 · 504 阅读 · 0 评论 -
02.mysql日志系统
再言,大家一定要用md记笔记,他他他实在是太好用了! 日志系统 1.查询语句的流程更新语句等同样会走一遍 2.与查询不同,更新流程涉及到redo log(重做日志),和binlog(归档日志)。 1.重做日志 redo log(引擎层特有 1.WAL技术:全称为WriteAhead Logging,流程是日志>>磁盘 2.有记录需要更新,lnnoDB先把记录写到redo log,并更新内存。 lonnDB引擎适当时,会将操作记录更新到磁盘内,更新会在系统空闲时候原创 2021-12-30 22:13:13 · 465 阅读 · 0 评论 -
07.行锁
行锁 1.不支持引擎的锁并发只能用表锁,一张表只能有一个更新执行 2.行锁是针对表中行记录的锁。 1.两阶段锁 1.两阶段锁协议:在inooDB中,行锁在需要的时候加上,不是不需要立即释放,事务结束才释放 2.死锁和死锁检测 1.死锁: 并发系统不同线程循环资源依赖,线程都在等待别的线程释放资源时,这几个线程都会进入无限等待的状态 2.解决死锁两种策略: 1)进入等待,直到,超时时间通过参数innodb_lock_woit_timeout设置 2)发起死锁检测,发现死锁原创 2021-12-30 22:16:18 · 349 阅读 · 0 评论 -
05.mysql索引概念
索引概念 1.覆盖索引 1.覆盖索引可以减少树的搜索次数,提升查询性能 2.最左侧原则 1.索引项定义按照出现顺序排序 2.第一原则:通过调整顺序,可以少维护一个索引,优先考虑 3.若联合索引其中一个字段过大,考虑建立单索引和联合索引 3.索引下推 1.mySQL 5.6 引入的索引下推优化(index condition pushdown),在索引遍历过程,对索引包含的字段先做判断,过滤不满足条件的记录。减少回表次数 [外链图片转存失败,源站可能有防盗链机制,建议将图原创 2021-12-30 22:15:14 · 129 阅读 · 0 评论