02 2022 档案

摘要:基础问题 线程和进程的含义及区别 线程 操作系统调度的最小单元,轻量级进程 进程 操作系统资源分配的基本单位,操作系统在运行一个程序的时候,会为其创建一个进程。 一个进程里可以创建多个线程,这些线程都拥有各自的计数器,堆栈和局部变量等属性,并且能够访问共享的内存变量。 每个进程都有独立的代码和数据空 阅读全文
posted @ 2022-02-28 18:54 rachel_aoao 阅读(48) 评论(0) 推荐(0) 编辑
摘要:概念 官方上说,Raft是一个共识算法(consensus algorithm)。我们一般喜欢把它叫做Raft协议。细品“共识”,“协议”,一定是有很多人参与才能叫做“共识”或者“协议”,要是一个人玩,想怎么玩就怎么玩。因此,Raft是一个让多方(一般就是多个服务器)都来遵守的一套“规则”,而这套规 阅读全文
posted @ 2022-02-24 19:57 rachel_aoao 阅读(325) 评论(0) 推荐(0) 编辑
摘要:原则 分库分表有一个前提:能不拆就不拆,能少拆就少拆,避免过度设计和过早优化,优先考虑升级硬件,索引优化,读写分离等等。因为拆分会带来开发和后期维护的成本。那为什么仍然需要分库分表呢?第一,某些系统还是需要依赖MySQL来保证金融级的事务。第二,MySQL本质是单机数据库,支持不了太大的数据量和高并 阅读全文
posted @ 2022-02-23 11:29 rachel_aoao 阅读(93) 评论(0) 推荐(0) 编辑
摘要:电商 01 订单 订单系统最重要的是:数据不能错。 下单如何保证幂等:可以先提供一个生成订单号的服务,下单时,将该号传过来。该订单号作为数据库主键来保证不会重复插入相同的数据。 更新订单的ABA问题:可以增加一个版本号字段,update orders set xxx=yyy, version = v 阅读全文
posted @ 2022-02-22 19:02 rachel_aoao 阅读(194) 评论(0) 推荐(0) 编辑
摘要:架构 复制集(replica set)提供了数据冗余和高可用。它是一组mongod进程。 一个复制集里面有很多数据节点(data bearing node)和一个可选择的仲裁节点(arbiter node)。数据节点的角色也分为主节点(primary node)从节点(secondary node) 阅读全文
posted @ 2022-02-22 11:29 rachel_aoao 阅读(191) 评论(0) 推荐(0) 编辑
摘要:Data Model概念 如果要给MongoDB打标签,那么首选的几个标签无非是NoSQL, 非关系型数据库, 分布式文档存储数据库。而关系型数据库,非关系型数据库一个非常重要的区别就是Data Model。Data Model 决定了“要怎么存”,“适用怎么查”等,也是选型的一个重要考虑因素。 所 阅读全文
posted @ 2022-02-21 11:32 rachel_aoao 阅读(130) 评论(0) 推荐(0) 编辑
摘要:MongoDB知识图谱 在网上看了半天,感觉可能学习MongoDB的官方文档会比较好一点。 MongoDB简介 MongoDB是一个文档型数据库(document database)。它存储数据的数据结构(文档)是一个Key-Value Pair的集合,其中Value也可以是一个数组,一个其他的文档 阅读全文
posted @ 2022-02-18 14:32 rachel_aoao 阅读(27) 评论(0) 推荐(0) 编辑
摘要:主从同步 主从同步的过程如下图所示,核心就是,当从库连接上主库之后,主库为为这个从库创建一个dump线程,用于传输binlog。从库有一个IO线程来接收binlog并写入它的中转日志relay log,同时有一个SQL线程读取relay log进行执行。主从同步保证的是数据的最终一致性。主从同步的方 阅读全文
posted @ 2022-02-17 19:47 rachel_aoao 阅读(100) 评论(0) 推荐(0) 编辑
摘要:WAL机制 Write-Ahead Logging,预写日志系统即当有数据更新请求的时候,先写日志,再改内存,等“有空”的时候再落磁盘(刷脏页)。WAL机制的好处,因为写日志是磁盘顺序IO,而直接写磁盘是随机IO,性能较差。 binlog MySQL server层自己的归档日志叫做binlog ( 阅读全文
posted @ 2022-02-16 19:40 rachel_aoao 阅读(177) 评论(0) 推荐(0) 编辑
摘要:事务 第一个前提:事务是存储引擎层面支持的,InnoDB支持事务,MyISAM不支持事务。本文都是指的InnoDB。 第二个前提 :MySQL默认设置autocommit = on,即任何语句若没有显示地开启事务,都被当做一个独立的事务进行执行 —— Even a select statement 阅读全文
posted @ 2022-02-15 18:51 rachel_aoao 阅读(62) 评论(0) 推荐(0) 编辑
摘要:# 存储 ## 数据页 计算机中的磁盘存储数据的最小单元是扇区,一个扇区512字节。文件系统最小单元是块,一个块4K。InnoDB最小单元是页(也就是我们说的数据页),一个页是16K。如下图: ![数据页](https://img2023.cnblogs.com/blog/2753616/20230 阅读全文
posted @ 2022-02-15 14:53 rachel_aoao 阅读(175) 评论(0) 推荐(0) 编辑
摘要:MySQL的架构 连接层 管理连接,握手, 权限验证 服务层 (我自己取的 0 0) 缓存,分析器(Parser,做词法分析语法分析),优化器(Optimizer 重写sql语句,执行计划生成,选择索引),执行器(做DDL, DML等) 存储引擎层 所有和索引相关的,其实是依赖不同的插件式存储引擎, 阅读全文
posted @ 2022-02-15 10:41 rachel_aoao 阅读(35) 评论(0) 推荐(0) 编辑
摘要:MySQL知识图谱 根据上图DB-Engines Ranking可以看到,在今天,关系型数据库仍然在存储组件中有着举足轻重的地位。 在梳理MySQL学习笔记的时候,会遇到一些名词,在此作一个字典,也可帮助回忆相关内容: 架构 客户端,连接器,分析器,优化器,存储引擎 存储 & 索引 数据页,缓存池( 阅读全文
posted @ 2022-02-15 09:36 rachel_aoao 阅读(38) 评论(0) 推荐(0) 编辑

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示