数据库
fly_zhaohy
坚持正确的方向,相信时间的力量。
展开
-
MySQL事务隔离级别的实现原理是怎样的?
主要是通过视图的方式来实现的:数据库里面会创建一个视图,访问的时候以视图的逻辑为准.读未提交: 直接返回记录上的最新值,没有视图概念.读已提交: 在每个SQL语句开始执行的时候创建视图,所以在查询SQL执行前如果数据发生修改,也可以读到.可重复读: 在事务启动时创建的视图,整个事务存在期间都用这个视图,所以读到的数据不会发生变化.串行化: 是直接使用加锁的方式来避免并行访问....原创 2020-01-18 10:48:36 · 999 阅读 · 0 评论 -
MySQL索引的数据结构怎么选?
日常工作中,SQL查询效率比较低的时候,我们想到的第一个解决方案就是增加索引,那什么是索引?索引有哪些数据结构?索引是怎样工作的?我们来一一剖析.什么是索引?精炼成一句话:索引是为了加快查询效率的排好序的数据结构.这句话有几个重点,首先,索引的作用是为了加快查询效率,其次,索引是一种数据结构,而且是排好序的数据结构.索引有哪些数据结构?常见的就是hash,b+tree.hash:...原创 2020-01-16 10:20:41 · 532 阅读 · 0 评论 -
主键索引和普通索引有什么区别?
在 MySQL 中, 索引是在存储引擎层实现的, 所以并没有统⼀的索引标准, 由于 InnoDB 存储引擎在 MySQL数据库中使⽤最为⼴泛, 下⾯以 InnoDB 为例来分析⼀下其中的索引模型.在 InnoDB 中, 表都是根据主键顺序以索引的形式存放的, InnoDB 使⽤了 B+ 树索引模型,所以数据都是存储在 B+ 树中的, 如图所示:从图中可以看出, 根据叶子节点内容不同,索引类...原创 2020-01-17 09:57:19 · 10669 阅读 · 0 评论 -
MySQL事务隔离级别实现原理剖析
在 MySQL 中,事务⽀持是在引擎层实现的。你现在知道,MySQL 是⼀个⽀持多引擎的系统,但并不是所有的引擎都⽀持事务。⽐如 MySQL 原⽣的MyISAM 引擎就不⽀持事务,这也是 MyISAM 被 InnoDB 取代的重要原因之⼀。事务A事务B电脑$1600手机$12导管$1...原创 2019-10-18 12:05:34 · 167 阅读 · 0 评论 -
SQL更新语句是怎样执行的(redo log日志和binlog日志)
用一条最简单的SQL语句示例:update user set age = age + 1 where id = 3;其实更新语句的执行和查询语句的执行流程是比较相似的,但是更复杂一些.首先,也是通过连接器进行连接,然后将user表的查询缓存都失效,杰西莱,分析器会通过词法和语法分析知道这是一条更新语句,优化器来选择id这个索引,然后执行器负责找到这一行,并更新,这个过程非常复杂,要说清这个过...原创 2019-10-17 16:52:43 · 742 阅读 · 0 评论 -
MySQL基础架构图(查询SQL是怎么执行的)
如果你有疑问,一条SQL是如何在MySQL内部执行的,看完这篇文章,想必你会有一个较为清晰的认识,先看下MySQL的基础架构图吧.大体来说,MySQL可以分为Server层和存储引擎层两部分. Server层包括连接器,查询缓存,分析器,优化器,执⾏器等,涵盖 MySQL的⼤多数核⼼服务功能,以及所有的内置函数(如⽇期、时间、数学和加密函数等),所有跨存储引擎的功能都在这⼀层实现,⽐如存储过程...原创 2019-10-16 18:40:39 · 314 阅读 · 0 评论 -
阿里MySQL建表规约
1.[强制]表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsigned tinyint(0 表示否,1表示是)说明:任何字段如果为非负数,必须是unsigned.正例:表达逻辑删除的字段名is_deleted,0表示未删除,1表示删除.2.[强制]表名,字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字.数据库字段名的修改代价很大,因为无法进行...原创 2019-09-29 11:50:07 · 815 阅读 · 0 评论