mysql学习笔记
文章平均质量分 60
mysql四十五讲学习笔记
hx.
这个作者很懒,什么都没留下…
展开
-
mysql 第三讲 事务隔离
原子性、一 致性、隔离性、持久性。为了解决脏读,幻读,不可重复读。脏读:原本的数据比较干净、纯粹,此时由于B事务更改了它,这个数据变得不再纯粹。这个时候A事务立即读取了这个脏数据,但事务B良心发现,又用回滚把数据恢复成原来干净、纯粹的样子,而事务A却什么都不知道,最终结果就是事务A读取了此次的脏数据,称为脏读。不可重复读:由整个事务A比较大,前后读取同一条数据需要经历很长的时间 。而在事务A第一次读取数据,比如此时读取了小明的年龄为20岁,事务B执行更改操作,将小明的年龄更改为30岁,此时事务A第二次读原创 2022-07-03 17:42:36 · 52 阅读 · 0 评论 -
mysql 第六讲 全局锁和表锁
全局锁就是对整个数据库实例加锁。MySQL提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。之后其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包括 建表、修改表结构等)和更新类事务的提交语句。坏处:如果你在主库上备份,那么在备份期间都不能执行更新,业务基本上就得停摆;如果你在从库上备份,那么备份期间从库不能执行主库同步过来的binlog,会导致主从延迟。如果不加锁:备份系统备份的得到的库不是一个逻辑时间点,这个视图是原创 2022-06-27 21:07:41 · 305 阅读 · 0 评论 -
mysql 第五讲 深入浅出索引(下)
回到主键索引树搜索的过程,我们称为回表 。 有没有可能经过索引优化,避免回表过程呢?覆盖索引如果执行的语句是select ID(主键) from T where k between 3 and 5,这时只需要查ID的值,而ID的值 已经在k索引树上了。就可以直接使用结果。 是否有必要将身份 证号和名字建立联合索引? 如果现在有一个高频请求,要根据市民的身份证号查询他的姓名,这个联合索引就有意义了 。可以在这个高频请求上用覆盖索引。最左前缀原则当你的原创 2022-06-27 21:05:02 · 87 阅读 · 0 评论 -
mysql 第四讲 深入浅出索引(上)
哈希表:只适用等值查询。有序数组:在等值查询和范围查询场景中的性能就都非常优秀。等值:O(log(N))。二叉树:不如N叉树。以InnoDB的一个整数字段索引为例,这个N差不多是1200。这棵树高是4的时候,就可以存 1200的3次方个值,这已经17亿了。考虑到树根的数据块总是在内存中的,一个10亿行的表上一 个整数字段的索引,查找一个值最多只需要访问3次磁盘。InnoDB用B+树,分裂操作费时。自增主键的好处:...原创 2022-06-27 21:02:32 · 178 阅读 · 0 评论 -
mysql 第二讲 一条sql更新语句是如何执行的
为什么?这是为了让两份日志之间的逻辑一致。数据恢复:首先,找到最近的一次全量备份,如果你运气好,可能就是昨天晚上的一个备份,从这个备份恢复到临时库;然后,从备份的时间点开始,将备份的binlog依次取出来,重放到误删表之前的那个时刻。如果不是两阶段,数据恢复就会出问题。先写redo log后写binlog:这时候binlog里面就没有记录这个语句。由于这个语句的binlog丢失,这 个临时库就会少了这一次更新,恢复出来的这一行c的值就是0,与原库的值不同。先写binlog后写redo log:原创 2022-06-27 20:57:54 · 113 阅读 · 0 评论 -
Mysql 第一讲 基础架构
server:涵盖MySQL的大多数核心服务 功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎(指的应该是和存储引擎无关)的功能都在这一层实现,比如存储过程、触发器、视图等。建立连接的过程通常是比较复杂的,所以我建议你在使用中要尽量减少建立连接的动作,也就是 尽量使用长连接。...原创 2022-06-27 20:53:52 · 122 阅读 · 0 评论