更新数据都是先读后写的,而这个读,只能读当前的值,称为“当前读”(current read)。
来自:08 | 事务到底是隔离的还是不隔离的?
119 人划过
然,一个索引上不同的值越多,这个索引的区分度就越好。
来自:10 | MySQL为什么有时候会选错索引?
42 人划过
你知道的,InnoDB 是索引组织表,主键索引树的叶子节点是数据,而普通索引树的叶子节点是主键值。所以,普通索引树比主键索引树小很多。对于 count(*) 这样的操作,遍历哪个索引树得到的结果逻辑上都是一样的。因此,MySQL 优化器会找到最小的那棵树来遍历。在保证逻辑正确的前提下,尽量减少扫描的数据量,是数据库系统设计的通用法则之一。
来自:14 | count(*)这么慢,我该怎么办?
39 人划过
对于 InnoDB 引擎来说,如果 redo log 提交完成了,事务就不能回滚(如果这还允许回滚,就可能覆盖掉别的事务的更新)。而如果 redo log 直接提交,然后 binlog 写入的时候失败,InnoDB 又回滚不了,数据和 binlog 日志又不一致了。
来自:15 | 答疑文章(一):日志和索引相关问题
36 人划过
每秒一次后台轮询刷盘,再加上崩溃恢复这个逻辑,InnoDB 就认为 redo log 在 commit 的时候就不需要 fsync 了,只会 write 到文件系统的 page cache 中就够了。
来自:23 | MySQL是怎么保证数据不丢的?
29 人划过
这类一边遍历数据,一边更新数据的情况,如果读出来的数据直接写回原表,就可能在遍历过程中,读到刚刚插入的记录,新插入的记录如果参与计算逻辑,就跟语义不符
来自:40 | insert语句的锁为什么这么多?
18 人划过
实际上,在线程进入锁等待以后,并发线程的计数会减一,也就是说等行锁(也包括间隙锁)的线程是不算在 128 里面的。
来自:29 | 如何判断一个数据库是不是出问题了?
16 人划过
实例 A’算出 set_a 与 set_b 的差集,也就是所有存在于 set_a,但是不存在于 set_b 的 GTID 的集合
来自:27 | 主库出问题了,从库怎么办?
15 人划过
如果你创建的 InnoDB 表没有指定主键,那么 InnoDB 会给你创建一个不可见的,长度为 6 个字节的 row_id。
来自:45 | 自增id用完怎么办?
14 人划过
在 MySQL 中有两个 kill 命令:一个是 kill query + 线程 id,表示终止这个线程中正在执行的语句;一个是 kill connection + 线程 id,这里 connection 可缺省,表示断开这个线程的连接,当然如果这个线程有语句正在执行,也是要先停止正在执行的语句的。
来自:32 | 为什么还有kill不掉的语句?
14 人划过
*精彩内容为该课程各文章中划线次数最多的内容
编辑推荐
包含这门课的学习路径
Java工程师
29门课程 154.7w人学习
架构师
28门课程 151.8w人学习
运维工程师
32门课程 149.1w人学习
Python工程师
19门课程 118.0w人学习
云原生工程师
14门课程 86.5w人学习
后端工程师
27门课程 184.1w人学习
C++工程师
7门课程 51.5w人学习
看过的人还看了