
MySQL
文章平均质量分 92
小狐憨憨
公众号:小柯贤,尽量每天都更新知识
展开
-
为什么MySQL不推荐使用uuid或者雪花id作为主键?
前言在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一,单机递增),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究竟有什么坏处?本篇博客我们就来分析这个问题,探讨一下内部的原因。本篇博客的目录 mysql程序实例 使用uuid和自增id的索引结构对比 总结 一、mysql和程序实例1.1.要说明这个问题,我们首先来建立三张表分别是use原创 2021-09-19 09:11:17 · 298 阅读 · 0 评论 -
你说说一条更新SQL的执行过程?
可以先看这篇文章:小柯贤的摸鱼日记:你说说一条查询SQL的执行过程?对于一个SQL语句的更新来说,前面的流程都可以说类似的,通过解析器进行语法分析,优化器优化,执行引擎去执行,这个都没有什么问题,重点在于多了一点东西,那就是redo_log、undo_log和binlog。执行流程大致如下:首先客户端发送请求到服务端,建立连接。 服务端先看下查询缓存,对于更新某张表的SQL,该表的所有查询缓存都失效。 接着来到解析器,进行语法分析,一些系统关键字校验,校验语法是否合规。 然后优化器进行SQ转载 2021-08-19 21:08:47 · 182 阅读 · 1 评论 -
你说说一条查询SQL的执行过程?
为了理解这个问题,先从Mysql的架构说起,对于Mysql来说,大致可以分为3层架构。第一层作为客户端和服务端的连接,连接器负责处理和客户端的连接,还有一些权限认证之类。比如客户端通用用户名密码连接到Mysql服务器,还有对于数据库表的执行权限。第二层是核心层,基本上Mysql大部分的核心功能都在这一层,包括查询缓存、解析器、优化器之类,比如SQL解析、优化、索引选择,到最后生成执行计划。第三层则是存储引擎了,Mysql通过执行引擎直接调用存储引擎API查询数据库中数据。通过Mysql的转载 2021-08-19 21:07:46 · 163 阅读 · 0 评论 -
MySQL不会丢失数据的秘密,就藏在它的 7种日志里
进入正题前先简单看看MySQL的逻辑架构,相信我用的着。MySQL逻辑架构MySQL的逻辑架构大致可以分为三层:第一层:处理客户端连接、授权认证,安全校验等。 第二层:服务器server层,负责对SQL解释、分析、优化、执行操作引擎等。 第三层:存储引擎,负责MySQL中数据的存储和提取。我们要知道MySQL的服务器层是不管理事务的,事务是由存储引擎实现的,而MySQL中支持事务的存储引擎又属InnoDB使用的最为广泛,所以后续文中提到的存储引擎都以InnoDB为主。转载 2021-08-18 21:12:15 · 194 阅读 · 0 评论