摘要: 误解:redis只有一个线程 Redis 的网络IO和键值对读写是由一个线程(主线程)来完成的(Redis6.0 网络IO改为多线程模型) Redis的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。 为什么用单线程: 多线程开销问题 多线程并发竞争问题,需要引入同步原语或 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(51) 评论(0) 推荐(0)
摘要: 索引: 作用:提高查询效率 索引不止存在内存中,还要写到磁盘上 常见的索引模型: 哈希表:适用于只有等值查询的场景(kv键值对) 有序数组:等值查询和范围查询场景(redis的有序集合) 搜索树:二叉树是搜索效率最高,大多数的数据库存储却并不使用二叉树 > [!TIP] 索引不止存在内存中,还要写到 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(53) 评论(0) 推荐(0)
摘要: 基础: 索引中的数据页的编号不一定连续,也就是说这些页在存储空间里可能并不挨着 B+树中相同层次的数据页通过页结构的File Header 中的FIL_PAGE_PREV和FIL_PAGE_NEXT,组成双向循环链表 每个数据页内部会维护页目录,通过分组的方式将所有用户记录分组 每个数据页内部记录之 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(55) 评论(0) 推荐(0)
摘要: 事务: 事务:就是要保证一组数据库操作,要么全部成功,要么全部失败 事务的特性:ACID,原子性、一致性、隔离性、持久性 mysql事务是由引擎提供的支持,MyISAM 引擎就不支持事务 多事务同时执行可能会出现的问题:脏写、脏读、不可重复读、幻读 脏读:在一个事务内读到了另一个未提交事务修改过的数 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(39) 评论(0) 推荐(0)
摘要: 成本计算: 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(28) 评论(0) 推荐(0)
摘要: 行记录分类: Compact Redundant( < 5.0`) Dynamic (默认) Compressed Compact 行记录结构: - 记录的额外信息 - 变长字段长度列表 - - 变长字段的定义: - VARCHAR(M) - CAHR(M) 但字符集为变长字符集(除了ascii、l 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(28) 评论(0) 推荐(0)
摘要: Mysql中的锁 全局锁:对整个数据库实例加锁 全库逻辑备份: 针对MyISAM做全库逻辑备份,只能用FTWRL方式,在备份时不能更新 补充:MyISAM这种不支持事务的引擎,如果备份过程中有更新,总是只能取到最新的数据,破坏了数据一致性 针对innodb备份,可以使用mysqldump –sing 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(36) 评论(0) 推荐(0)
摘要: 基础: 页是InnoDB管理存储空间的基本单位,一个页的大小一般是16KB 数据页(索引页)是页的一种,用来组织和和存放用户数据 索引页之间通过双向链表连接,数据页的物理结构不连续 数据页的详细结构: 数据页组成: |名称|中文名|占用空间大小|简单描述| |:—-|:—-|:—-|:—-| |Fi 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(77) 评论(0) 推荐(0)
摘要: 数据库: 数据库 描述 mysql TiDB Aurora PolarDB TDSQL MongoDB OpenSearch clickhouse RocksDB 行存储数据库 特性/数据库 TiDB Amazon Aurora PolarDB Tencent TDSQL 数据库类型 分布式关系数据 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(28) 评论(0) 推荐(0)
摘要: explain结果列说明: explain 列名 描述 id 在一个大的查询语句中每个SELECT关键字都对应一个唯一的id select_type SELECT关键字对应的那个查询的类型 table 表名 partitions 匹配的分区信息 type 针对单表的访问方法 possible_key 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(21) 评论(0) 推荐(0)
摘要: buffer pool 常识: Buffer Pool 是一片连续的内存空间,通过innodb_buffer_pool_size在服务器运行过程中调整buffer pool大小,默认为128MB Free Page(空闲页),此页未被使用,位于 Free 链表; Clean Page(干净页),此页 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(74) 评论(0) 推荐(0)
摘要: mysql逻辑架构图 图片 MySQL从架构角度可以分为: Server层: 该层实现所有跨存储引擎的功能。e.g. 存储过程、触发器、视图等 连接器: 职责:连接器负责跟客户端建立连接、获取权限、维持和管理连接 查看当前的连接状态: show processlist 连接: 生命周期:一个用户成功 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(14) 评论(0) 推荐(0)
摘要: 主从复制 MySQL 集群的主从复制过程梳理成 3 个阶段: 写入 Binlog:主库写 binlog 日志,提交事务,并更新本地存储数据。 同步 Binlog:把 binlog 复制到所有从库上,每个从库把 binlog 写到暂存日志中。 回放 Binlog:回放 binlog,并更新存储引擎中的 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(21) 评论(0) 推荐(0)
摘要: 连接的本质: 把各个连接表中的记录都取出来依次匹配的组合加入结果集并返回给用户 示意图: 图片 连接的类型: 根据驱动表中的记录在被驱动表中无匹配时,是否加入到最后的结果集分为: 内连接INNER JOIN:不加入结果集 外连接:加入结果集 根据驱动表选择分为: 左外连接 LEFT JOIN:选取左 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(20) 评论(0) 推荐(0)
摘要: 独立表空间: 表空间的是由若干个区组成的 区(extent): 连续的64个页就是一个区extent,默认占用1MB空间大小。 为什么要有区:同层的索引页之间以链表组织,物理距离可能会比较远,这样就会引起随机IO。使用区可以保证64个页的连续) 段(segment): 定义:某些零散的页以及一些完整 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(25) 评论(0) 推荐(0)
摘要: bin log 备份日志 作用:Server层生成的日志,主要用于数据备份和主从复制 bin log刷盘时机: 事务执行过程中,先把日志写到 binlog cache(Server 层的 cache),事务提交的时候,再把 binlog cache 写到操作系统的内核缓冲区page cache,最后 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(63) 评论(0) 推荐(0)
摘要: UPDATE t_user SET name = ‘x’ WHERE id = 1 执行器负责具体执行,会调用存储引擎的接口,通过主键索引树搜索获取 id = 1 这一行记录: 如果 id=1 这一行所在的数据页本来就在 buffer pool 中,就直接返回给执行器更新(id非唯一索引的前提下); 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(14) 评论(0) 推荐(0)
摘要: 索引合并 index merge: 含义:使用到多个索引来完成一次查询的执行方法 explain 中 type 会显示index merge 核心思想: 读多个二级索引的操作是顺序IO(索引是有序的),只用一个索引,但是做回表操作是随机IO 索引合并优点: 可以减少回表次数 基于有序的主键回表 Ro 阅读全文
posted @ 2024-10-28 00:01 navyum 阅读(50) 评论(0) 推荐(0)
摘要: docker client-server 架构 docker client使用REST API,通过UDS或者network,与dockerd进行通信 Docker Registries 用来存储Docker Images 默认使用Docker Hub Registries 常用的registrie 阅读全文
posted @ 2024-10-28 00:00 navyum 阅读(37) 评论(0) 推荐(0)
摘要: minikube安装踩坑笔记 步骤一:minikube 执行文件下载(linux x86-64为例子): 官方地址:(https://minikube.sigs.k8s.io/docs/start/?arch=%2Flinux%2Fx86-64%2Fstable%2Fbinary+download) 阅读全文
posted @ 2024-10-28 00:00 navyum 阅读(496) 评论(0) 推荐(0)
摘要: k8s 阅读全文
posted @ 2024-10-28 00:00 navyum 阅读(34) 评论(0) 推荐(0)
摘要: HEIF编、解码器安装手册 by Navyum HEIF 编码、解码原理 Img 相关依赖库: 主要的第三方库:libx265、libde265、libaom、libvvenc、liblibheif、libvips 其他参考:libavif 相关编码标准: H.264/MPEG-4、H.265/HE 阅读全文
posted @ 2024-10-28 00:00 navyum 阅读(714) 评论(0) 推荐(0)
摘要: piclist 下载地址:https://github.com/Kuingsmile/PicList 食用方法: 参考官方文档 阅读全文
posted @ 2024-10-28 00:00 navyum 阅读(16) 评论(0) 推荐(0)
摘要: ISOBMFF多媒体文件协议 概述 ISOBMFF(ISO Base Media File Format)是ISO/IEC 14496-12标准的具体实现,是一种高度可扩展的容器文件格式,定义了多媒体文件的通用结构。 主要用途: 用于视频、音频文件的封装,支持如HEIF图像文件格式 是现代流媒体技术 阅读全文
posted @ 2024-10-28 00:00 navyum 阅读(140) 评论(0) 推荐(0)
摘要: jsdelivr CDN 和 GitHub 的关系 jsdelivr 是一个免费且可靠的内容分发网络(CDN)服务,允许开发者将静态资源存储在 GitHub 仓库中,并通过 jsdelivr 进行全球加速访问。具体来说,jsdelivr 能够通过提供一个 CDN 地址,将存储在 GitHub 仓库中 阅读全文
posted @ 2024-10-27 23:59 navyum 阅读(106) 评论(0) 推荐(0)
摘要: electron 打包 mac程序环境配置: 需要准备的内容: appleid(账号) apple app password(app专用密码) apple development cert(开发者证书) appleid(apple账号) 使用自己的appleid即可 注册地址:https://app 阅读全文
posted @ 2024-10-27 23:59 navyum 阅读(80) 评论(0) 推荐(0)
摘要: github action 踩坑记录 问题一:工作流互相触发异常的 主要任务: 使用【自动生成工作流】通过定时任务触发,生产内容并推送到分支 使用【构建工作流】通过push事件监听,将新生产的内容构建成待发布内容 使用【pages发布工作流】将构建好的内容发布到Pages 遇到的问题: 1号工作流执 阅读全文
posted @ 2024-10-27 23:59 navyum 阅读(47) 评论(0) 推荐(0)
//自己上传到博客园的js