数据库
文章平均质量分 84
了解数据库的底层实现,sql优化,索引,存储引擎
搬砖界的小白
凡所迹遇,绝非偶然
展开
-
《MySQL》第十四篇 COUNT(*)和 COUNT(1)的区别
本文旨在介绍COUNT(*),COUNT(1),COUNT(col)三者之间区别和使用索引的情况,count() 函数是用来统计行数用的,以下内容均是个人实践模拟结果,仅供参考;原创 2023-08-03 11:17:35 · 203 阅读 · 0 评论 -
《MySQL》第十三篇 SELECT * 和 SELECT 字段名的区别
不同的写法,可以满足不同的场景。在实际应用中,需要根据具体情况选择合适的写法。如果需要查询所有字段,可以使用 SELECT *。如果需要精确控制查询的字段,可以使用 SELECT 字段。原创 2023-07-31 15:01:15 · 1126 阅读 · 0 评论 -
《MySQL》第七篇 索引设计与优化总结
一. 索引设计原则二. 索引优化总结此篇索引总结文章,各小点都在前面的两篇索引优化文章中详细剖析了索引优化场景分析一索引优化场景分析二一. 索引设计原则1. 代码先行,索引后上怎么给数据表建立索引的,是建完表马上就建立索引吗?这其实是不对的,一般应该等到主体业务功能开发完毕,把涉及到该表相关SQL都要拿出来分析之后再建立索引。2. 联合索引尽量覆盖条件比如可以设计一个或者两三个联合索引(尽量少建单值索引),让每一个联合索引都尽量去包含sql语句里的where、order by、gro原创 2021-11-24 17:24:11 · 354 阅读 · 0 评论 -
《MySQL》第九篇 MySQL事务隔离级别与锁机制
一. MySQL事务及ACID特性详解二. MySQL事务隔离级别详解我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计了事务隔离机制、锁机制、MVCC多版本并发控制隔离机制,用一整套机制来解决多事务并发问题。接下来,我们会深入讲解这些机制,让大家彻底理解数据库内部的执行原理。一. MySQL事务及ACID特性详解1.原创 2021-11-30 17:05:17 · 582 阅读 · 0 评论 -
《MySQL》第十篇 MVCC与BufferPool缓存机制
一. MySQL事务隔离级别二. 锁机制一. MySQL事务隔离级别原创 2021-12-06 11:37:47 · 815 阅读 · 0 评论 -
《MySQL》第六篇 索引优化场景分析二
六. 索引优化 - 分页七. 索引优化 - Join关联查询八. 索引优化 - 其他场景六. 索引优化 - 分页七. 索引优化 - Join关联查询八. 索引优化 - 其他场景1. 尽量使用覆盖索引(索引列包含查询列),减少 select * 语句## t_employees 表的索引是`name`, `age`, `position` 组合的联合索引## 查询结果字段刚好是索引字段,使用了覆盖索引EXPLAIN SELECT name,age,position FROM t_employ原创 2021-11-24 15:45:05 · 407 阅读 · 0 评论 -
《MySQL》第四篇 MySQL如何选择合适的索引
示例表:CREATE TABLE `t_employees` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(24) NOT NULL DEFAULT '' COMMENT '姓名',`age` int(11) NOT NULL DEFAULT '0' COMMENT '年龄',`position` varchar(20) NOT NULL DEFAULT '' COMMENT '职位',`hire_time` timestamp NOT原创 2021-11-23 09:01:34 · 411 阅读 · 0 评论 -
《MySQL》第八篇 Using Filesort文件排序原理详解
《MySQL》第六篇 Using filesort文件排序原理详解原创 2021-11-22 16:30:15 · 464 阅读 · 0 评论 -
《MySQL》第五篇 索引优化场景分析一
一. 最左前缀原则和索引下推二. MySQL如何选择合适的索引一. 不同场景索引使用情况分析示例表:CREATE TABLE `t_employees` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(24) NOT NULL DEFAULT '' COMMENT '姓名',`age` int(11) NOT NULL DEFAULT '0' COMMENT '年龄',`position` varchar(20) NOT NULL D原创 2021-11-22 11:47:35 · 265 阅读 · 0 评论 -
《MySQL》第三篇 一条SQL在MySQL中是如何执行的
一. MySQL的内部组件结构二. 词法分析器原理三. 词法分析器原理一. MySQL的内部组件结构MySQL 总体可分为原创 2021-11-18 16:57:53 · 647 阅读 · 0 评论 -
《MySQL》第二篇 Explain工具详解
一. Explain工具介绍与详解二. 索引最佳实践三. 索引失效场景和SQL优化总结链接1: MySQL安装教程链接2: Explain官方文档一. Explain工具介绍与详解1. Explain工具介绍使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL。注意:如果 from 中包含子查询,仍会执行该子查询,原创 2021-11-17 15:25:24 · 609 阅读 · 0 评论 -
《MySQL》第一篇 索引底层数据结构与算法
一.索引与索引数据结构二.存储引擎一.索引与索引数据结构1.索引是什么?为什么需要使用索引?索引是帮助MySQL高效获取排好序的数据的数据结构。如果不使用索引,需要全表扫描,与磁盘I/O交互频繁,遇到数据量大的场景时,效率会非常低下使用索引,从上图可知,可以直接定位磁盘位置,获取符合查询条件的数据,减少与磁盘的交互,大大提升查询效率2.可以用作索引的数据结构有哪些?(1) 二叉树特点: 左边的值永远小于等于父节点,右边的值永远大于父节点, 查询算法为折半查找联系上图表,假如将年龄做为索原创 2021-11-16 10:12:07 · 774 阅读 · 0 评论