随笔分类 -  mysql

摘要:为什么要加锁? 问题背景 当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 要解决的问题 多用户环境下保证数据库完整性和一致性 锁是什么 在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步 阅读全文
posted @ 2020-08-21 00:07 不知不觉、 阅读(167) 评论(0) 推荐(0) 编辑
摘要:本文来自一位不愿意透露姓名的粉丝投稿,由Hollis整理并"还原"了面试现场。 相信很多人对于MySQL的索引都不陌生,索引(Index)是帮助MySQL高效获取数据的数据结构。 因为索引是MySQL中比较重点的知识,相信很多人都有一定的了解,尤其是在面试中出现的频率特别高。楼主自认为自己对MySQ 阅读全文
posted @ 2020-08-21 00:03 不知不觉、 阅读(1575) 评论(0) 推荐(0) 编辑
摘要:innodb的默认事务隔离级别是rr(可重复读)。它的实现技术是mvcc。基于版本的控制协议。该技术不仅可以保证innodb的可重复读,而且可以防止幻读。但是它防止的是快照读,也就是读取的数据虽然是一致的,但是数据是历史数据。如何做到保证数据是一致的(也就是一个事务,其内部读取对应某一个数据的时候, 阅读全文
posted @ 2020-06-24 15:51 不知不觉、 阅读(682) 评论(0) 推荐(0) 编辑
摘要:https://www.jianshu.com/p/35588ecf33c1 阅读全文
posted @ 2020-06-16 11:51 不知不觉、 阅读(116) 评论(0) 推荐(0) 编辑
摘要:redo log是InnoDB引擎特有的;binlog是MySQL的Server层实现的,所有引擎都可以使用。 redo log是物理日志,记录的是“在某个数据页上做了什么修改”;binlog是逻辑日志,记录的是这个语句的原始逻辑,比如“给ID=2这一行的c字段加1 ”。 redo log是循环写的 阅读全文
posted @ 2020-05-19 16:27 不知不觉、 阅读(1943) 评论(0) 推荐(0) 编辑
摘要:1、覆盖索引:如果查询条件使用的是普通索引(或是联合索引的最左原则字段),查询结果是联合索引的字段或是主键,不用回表操作,直接返回结果,减少IO磁盘读写读取正行数据2、最左前缀:联合索引的最左 N 个字段,也可以是字符串索引的最左 M 个字符3、联合索引:根据创建联合索引的顺序,以最左原则进行whe 阅读全文
posted @ 2020-04-20 16:23 不知不觉、 阅读(138) 评论(0) 推荐(0) 编辑
摘要:事务:事务就是要保证一组数据库操作,要么全部成功,要么全部失败; ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性); SQL标准的事务隔离级别包括:读未提交(read uncommitted)、读提交(read com 阅读全文
posted @ 2020-04-20 13:25 不知不觉、 阅读(157) 评论(0) 推荐(0) 编辑