暂无搜索历史
经常关注慢查询日志的读者,和 Lock_time 应该算是老相识了,大家对这位老相识了解有多少呢?
源码分析系列的第 3 篇文章,我们来聊聊 MySQL 是怎么判断一条记录是否匹配 where 条件的。
源码分析系列的第 2 篇文章,我们来聊聊 select * 中的星号是怎么展开为表中所有字段的。
MySQL 源码数量庞大,各种功能的代码盘根错节,相互交织在一起,形成一张复杂的网。
为了和前一篇文章介绍的场景区分开,我们用两个虚构小故事把两种场景放在一起作个对比。
我们也许有过这样的经历:用 mysql 客户端连上数据库,执行一条 SQL,结果迟迟执行不完,我们等得不耐烦了,顺手就是一个 Ctrl + C。
经过分析发现,报错信息中的数据库,所有表名都混用了大小写字母,因为创建表之后,系统变量 lower_case_table_names 的值被从 0 修改为 1,...
本文示例 SQL 中的表,都来自于官方提供的测试数据库 sakila,下载链接如下:https://downloads.mysql.com/docs/sakil...
全表扫描成本作为参照物,用于和表的其它访问方式的成本做对比。任何一种访问方式,只要成本超过了全表扫描成本,就不会被使用。
经过上一篇 where field in (...) 的开场准备,本文正式开启子查询系列,这个系列会介绍子查询的各种执行策略,计划包括以下主题:
我们日常写 SQL 时,子查询应该算是常客了。MySQL 为子查询执行准备了各种优化策略,接下来我会写子查询各种优化策略是怎么执行的系列文章。
多年前开发过一个异步发送订单短信、邮件通知的守护程序,每次程序启动时会创建数据库连接,后续读写数据库操作就一直复用这个连接。
MySQL 8.0 对数据字典进行了重构,用户表、数据字典表、MySQL 其它系统表的元数据都统一保存到 mysql 库的数据字典表中了。
本文我们一起来看看,MySQL 在崩溃恢复过程中都干了哪些事情,Redo 日志又是怎么大显身手的。
初次接触二阶段提交,源于想以事务的方式实现对 MongoDB 中多个集合数据的修改,而 MongoDB 本身不支持事务,官方推荐的方案就是使用二阶段提交。
InnoDB 索引页的大小默认为 16K,然而,varchar、text、blob 类型的单个字段内容长度就有可能超过 16K,这种情况下,整个索引页都存不下一...
redo 日志只有崩溃恢复的时候才能派上用场,undo 日志不一样,它承担着多重职责,MySQL 崩溃恢复、以及正常提供服务期间,都有它的身影。
对于这样的剧情,想必大家不会陌生:美国大片中拯救世界的英雄,平时看起来跟普通人没啥区别,甚至还可能会有点让人看不上。
如果 WHERE 条件能够命中索引(包含主键索引、二级索引),计算 WHERE 条件范围内的记录数量,是计算使用索引执行查询的成本的关键指标。
对于 SQL 语句的执行来说,定位 B-TREE 索引中的一条记录,是个举足轻重的能力。
暂未填写公司和职称
暂未填写学校和专业