mysql
文章平均质量分 93
mysql
yue_xin_tech
一个对技术虔诚的程序员
展开
-
mysql 面试总结
前段时间找工作搜索 golang 面试题时,发现都是比较零散或是基础的题目,覆盖面较小。而自己也在边面试时边总结了一些知识点,为了方便后续回顾,特此整理了一下。原创 2022-02-09 23:39:43 · 839 阅读 · 0 评论 -
mysql 系列:搞定索引
摘要索引是数据库里重要的组成部分,也是提高查询效率必备的知识点。本文将会介绍索引作用、索引类型、索引优化以及索引底层结构,也算是对索引知识的一次归纳。一、索引介绍什么是索引?数据库是用来存储与读取数据的,如何在这庞大的数据中查询我们想要的那一行呢?最简单的办法便是扫描整个数据表,一一对比。然而这样效率太低了。如果我们有类似字典的功能,在查询某行数据前,先到字典里定位到行位置,再根据行位置找到具体数据,是否能更快呢?是的,索引就是这么设计的。一般的,我们往表里插入某一行数据时,总会有额外的信息来定原创 2021-08-15 10:44:44 · 106 阅读 · 0 评论 -
mysql 系列:总体架构概述
前言使用 mysql 很多年了,但也没怎么深入研究过,准备最近了解下 mysql 的相关知识点。看看这款程序界里的神器是怎么运转的。mysql 的架构模式mysql 采用的是 C/S 架构,也就是我们平常所说的客户端-服务器模型。像我们平常所用的 workbench、nacivat 就是客户端,当然,还有命令行工具。它们会根据指定的 ip、prot 连到服务器,通过一定的协议来进行 SQL 的执行。这些协议包括最广泛使用的 TCP 协议,也包括了适用于本地通信的套接字、共享内存、命名管道等协议。m原创 2021-08-08 20:46:25 · 209 阅读 · 0 评论 -
mysql 系列:锁和它的运用
前言数据库是一个允许多用户、多会话、多线程访问的系统。为了在并发访问中能保证数据的一致性和完整性,一般会使用事务来做控制,外加锁来作为辅助手段。所以今天整理了一下锁的相关知识,顺便看看它在事务里是怎么配合使用的。锁的分类我们先来看下锁的分类及其作用有哪一些,以便能更好的分析运用场景。乐观/悲观锁乐观锁:在读取数据时会假设各个事务互不影响,它们会各自处理好属于自己的那部分数据。如果在更新数据时,发现真的有其他事务修改了属于自己的那部分,则会回滚之前的一切操作。悲观锁:采取了先获取锁再访问的保守策略原创 2021-08-16 23:49:00 · 139 阅读 · 0 评论 -
mysql 系列:MVCC
MVCC 介绍MVCC 全称是 Multiversion concurrency control,即多版本并发控制。从它的名字就可以看出是关于在并发时对读写控制的一种方法,基本市面上流行的 Database 都有其具体的实现。MVCC 使得各个事务在读写数据时能最大程度的降低锁的依赖,在保证事务隔离性的同时,也能让读类型的事务和写操作的事务并发进行。当我们在进行修改操作时,MVCC 会通过 undo log 保留了之前的数据记录,就像每条记录都有自己的历史版本一样。通过这些历史版本的追溯,MVCC原创 2021-08-21 21:32:26 · 214 阅读 · 0 评论 -
mysql 系列:存储引擎
介绍在上一篇文章 mysql 总体概述 里我们大概了解了 mysql 的架构设计,其中提到了存储引擎。它在 mysql 里是一个非常重要的角色,负责了数据的创建、读取和更新,也就是数据的 I/O 操作。最重要的是,它是可插拔的模块,这意味着我们在切换存储引擎时,对于上层应用来讲,是不需要做任何适配的。存储引擎有很多种,而且都有属于自己的特性,像我们常见的 InnoDB 有事务支持、MyISAM 速度较快等。存储引擎的用法作为插件化的模块,我们可以很自然的添加、卸载存储引擎,并且在创建表时指定存储引原创 2021-08-08 20:47:16 · 92 阅读 · 0 评论 -
mysql 系列:日志
摘要日志的存在,为数据库的很多功能提供了保障。像用于回滚事务的 undo log,用于恢复事务的 redo log 以及用于主从备份的 binlog。本文将会大致介绍下数据库里的日志类别,以及重点分析下事务日志的相关知识点。日志分类在 mysql 里的日志种类有很多,从总体上来讲可以分为 Server 层 和 存储引擎层的(关于 mysql 的总体架构可以看这篇:mysql 系列:总体架构概述)。在 Server 层里的日志分类如下:错误日志错误日志是 mysql 在启动、运行或停止时出现异常的日原创 2021-08-19 23:17:52 · 362 阅读 · 0 评论