![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mysql
学习资料
千鸟送天
这个作者很懒,什么都没留下…
展开
-
mysql意向锁
考虑这个例子:事务A锁住了表中的一行,让这一行只能读,不能写。之后,事务B申请整个表的写锁。如果事务B申请成功,那么理论上它就能修改表中的任意一行,这与A持有的行锁是冲突的。数据库需要避免这种冲突,就是说要让B的申请被阻塞,直到A释放了行锁。数据库要怎么判断这个冲突呢?step1:判断表是否已被其他事务用表锁锁表step2:判断表中的每一行是否已被行锁锁住。注意step2,这样的判断方法效率实在不高,因为需要遍历整个表。于是就有了意向锁。在意向锁存在的情况下,事务A必须先申请表的意向共享锁,成功后再.原创 2021-06-28 13:50:54 · 1003 阅读 · 0 评论 -
mysql索引B+树
如果非主键索引保存记录,那么非主键一多,记录行也越多,浪费空间,而且进行修改的时候这些记录都会变化,每一个都要修改,如果只保存一份,就不用修改那么多。...原创 2021-06-27 23:08:21 · 73 阅读 · 0 评论 -
mysql锁
这个时候会把表中的所有记录都加锁,因为其他记录把c的值改为1了,这个时候你查询会多出一条记录,但是这里不是表锁,还是行锁原创 2021-06-27 11:24:56 · 67 阅读 · 0 评论 -
mysql事务隔离级别
一、未提交读在一个事务里,事务a读取了事务b修改了但未提交的记录,只要b修改了,不管b有没有提交事务,a都可以读到最新值二、以提交读在一个事务里,事务a读取了事务b修改了的记录,只有b将事务提交了,a才能读取到最新值,否则是旧值三、可重复读在一个事务里,事务a读取了事务b修改了的记录,即使事务b提交了事务,a还是读取的老数据,读取的数据没变...原创 2021-06-26 15:27:25 · 65 阅读 · 0 评论 -
MySQL事务的实现
undo和redo日志归属于innodb存储引擎,binlog是归属于mysql的server层的数据从用户态内存空间到内核空间最后到磁盘,一般是数据存到磁盘达到一个阈值,才会批量的异写磁盘,如果没有写磁盘,断电了,会导致数据的丢失...原创 2021-06-25 09:00:47 · 60 阅读 · 0 评论 -
MVCC
详解原创 2021-03-05 23:22:41 · 133 阅读 · 0 评论 -
腾讯面试:MySQL事务与MVCC如何实现的隔离级别?
详解原创 2021-03-05 22:13:00 · 97 阅读 · 0 评论 -
Mysql优化2
优化原创 2021-03-04 16:55:32 · 69 阅读 · 1 评论 -
mysql主从复制
参考原创 2021-02-26 21:44:53 · 69 阅读 · 0 评论 -
mysql系统配置优化
原创 2021-02-23 12:04:47 · 54 阅读 · 0 评论 -
mysql表的水平拆分
原创 2021-02-23 12:00:04 · 129 阅读 · 0 评论 -
mysql表的垂直拆分
原创 2021-02-23 11:50:54 · 150 阅读 · 0 评论 -
mysql表的范式优化
创建两张分类表,对应分类描述和商品名称原创 2021-02-23 11:42:59 · 62 阅读 · 0 评论 -
mysql表结构优化
原创 2021-02-23 11:20:15 · 102 阅读 · 0 评论 -
mysql索引优化
原创 2021-02-23 10:56:47 · 62 阅读 · 0 评论 -
mysql性能优化-limit查询优化
使用主键file_id来进行排序原创 2021-02-22 23:52:19 · 69 阅读 · 0 评论 -
mysql性能优化-group by的优化
在actor中出现了文件排序和临时表原创 2021-02-22 23:38:05 · 294 阅读 · 0 评论 -
mysql性能优化-子查询优化
原创 2021-02-22 23:21:31 · 51 阅读 · 0 评论 -
mysql数据库优化
原创 2021-02-22 23:03:21 · 52 阅读 · 0 评论 -
innodb的索引下推
索引下推,是mysql优化联合索引查询的一种方案,叫做索引下推不如翻译为索引条件下推更合适(Index Condition Pushdown)简称ICP,因为他实际上是把where中的查询索引条件,下推给了存储引擎本文涉及到的内容有:回表索引下推索引覆盖预备知识:b+tree主键索引和非主键索引聚簇索引和非聚簇索引主键索引和非主键索引说到回表,我们先回顾一下innodb主键索引和非主键索引(辅助索引)的区别(具体的之后写一篇文章来讲解,这里只是简单带过)。他们数据存储的方式是一样的,但原创 2021-02-14 16:19:18 · 256 阅读 · 0 评论 -
索引下推
索引下推比如一个表中有四个字段id,name,age,gender, 创建联合索引(name,age)查询select * from t1 where name = ‘zhangsan’ and age = 10在没有索引下推的优化:1、先根据name把符合的数据从存储引擎拉到mysql的server层2、在server层按照age进行过滤索引下推优化:从存储引擎拉取数据的时候直接按照name和age进行判断,将符合的结果返回mysql的server层1、不使用索引条件下推优化时存储引原创 2021-02-14 15:50:59 · 1644 阅读 · 0 评论 -
最左前缀匹配原则
最左前缀匹配原则:在MySQL建立联合索引时会遵守最左前缀匹配原则,即最左优先,在检索数据时从联合索引的最左边开始匹配。要想理解联合索引的最左匹配原则,先来理解下索引的底层原理。索引的底层是一颗B+树,那么联合索引的底层也就是一颗B+树,只不过联合索引的B+树节点中存储的是键值。由于构建一棵B+树只能根据一个值来确定索引关系,所以数据库依赖联合索引最左的字段来构建。举例:创建一个(a,b)的联合索引,那么它的索引树就是下图的样子。可以看到a的值是有顺序的,1,1,2,2,3,3,而b的值是没有顺序的原创 2021-02-14 15:30:40 · 5589 阅读 · 2 评论 -
表和表之间的关系
一对多的情况在多的那一方加一个外键多对多的情况建一张中间表原创 2021-01-08 20:25:45 · 131 阅读 · 0 评论 -
mysql外键
原创 2020-12-30 13:19:41 · 122 阅读 · 0 评论 -
MySql多表查询案例
SELECT ec.`id`, ec.`title`, ec.`price`, ec.`lesson_num`, ecd.`description`, es1.`title` AS oneSubject, es2.`title` AS twoSubjectFROM edu_course ec LEFT JOIN edu_teacher et ON ec.`teacher_id`=et.`id` LEFT JOIN edu_course_description ecd ON ec.`原创 2020-12-29 16:13:17 · 93 阅读 · 0 评论