自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(361)
  • 收藏
  • 关注

原创 【Docker】13.容器基本操作实战

本文介绍了MySQL、Redis的容器化安装及C++开发环境搭建。通过Docker拉取mysql:5.7和redis:7.0镜像,分别配置密码、端口映射并启动服务,实现数据库与缓存的快速部署。使用docker exec进入容器进行命令操作,并可通过GUI工具远程连接。最后基于Ubuntu 22.04构建C++开发容器,完成基础环境准备,实现应用开发环境的容器化管理。

2026-10-08 14:21:03 235

原创 【Docker】12.容器基本操作

本文介绍了Docker容器的基本操作与状态迁移流程。通过docker run创建并运行Nginx容器,使用ps、inspect、logs等命令查看容器状态、配置及日志;通过stop、rm停止并删除容器。同时演示了容器从创建(create)、启动(start)、暂停(pause)、恢复(unpause)到重启(restart)的完整生命周期管理,涵盖容器在不同状态间的转换与操作指令,帮助用户掌握容器全周期运维技能。

2026-09-22 16:17:44 135

原创 【Docker】11.容器命令

容器生命周期包括创建、运行、停止、暂停和删除等状态,可通过docker create、run、start、stop、pause、rm等命令进行状态转换。容器因内存不足(OOM)会被宿主机内核强制终止,可使用--oom-kill-disable避免,但需注意资源管理。异常退出时,若设置--restart,Docker会自动重启容器。容器暂停通过剥夺CPU资源实现,其他资源保持不变。常用命令如exec、logs、inspect、cp等用于运维与调试。

2026-09-16 17:19:57 264

原创 【Docker】10.Docker镜像

我们以日常的地板为例,开发商的房子提供给用户的时候一般是做好了地暖,而这些地暖其实是一层一层添加的,最底层的钢筋水泥层,然后添加保温层,采暖管,再铺设水泥层,到最后交付的时候家家户户都是水泥面,这一层一般是不可修改的,最上层用户一般会再铺设商木地板或者地板砖每家每户的选择不一样,相当于我们镜像的容器层。构建镜像的时候,从一个最基本的操作系统开始,每个构建的操作都相当于做一层的修改,增加了一层文件系统。当你使用的时候,你只会看到一个完全的整体,你不知道里面有几层,也不清楚每一层所做的修改是什么。

2026-08-27 13:46:49 396 1

原创 【Docker】9.Docker 镜像仓库实战

简单的说 BusyBox 就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Linux 系统的自带的 shell。BusyBox 包含了一些简单的工具,例如 ls、cat 和 echo 等等,还包含了一些更大、更复杂的工具,例grep、find、mount 以及 telnet。当我们在外网访问百度的时候,其实会进行一个转发,代理到内网去,这就是所谓的反向代理,即反向代理“代理”的是服务器端,而且这一个过程对于客户端而言是透明的。来实现,这就是一个简单的正向代理的例子。

2026-08-25 10:26:09 216

原创 【Docker】8.镜像仓库

是一个存储和分发Docker镜像的托管系统。如果把Docker容器比作正在运行的“进程”,把Docker镜像比作“可执行程序”,那么就像是GitHub或—— 它是一个中心化的仓库,让开发者能够推送(Push)镜像并让其他人在任何地方拉取(Pull)镜像。想象你在开发一个微服务应用。你在本地构建了一个经过优化、包含所有依赖的镜像。为了让生产环境的Kubernetes执行将镜像上传到Registry。执行从Registry下载镜像并运行。如果没有Registry,你可能需要手动拷贝几百MB。

2026-08-25 10:25:37 323

原创 【Docker】7.Docker安装

本文介绍了Docker在不同平台的支持情况及Ubuntu系统下的安装步骤: 平台支持情况 Server版本和桌面版本支持情况通过图示展示 Ubuntu系统安装Docker详细流程 确认系统版本和CPU架构要求 彻底卸载旧版本Docker及相关组件 配置Docker官方下载源 安装Docker核心组件及插件 配置自动启动并验证安装 检查安装版本信息 安装过程包含详细的命令操作和验证步骤,确保Docker环境干净完整。适用于Ubuntu 22.04等LTS版本,支持ARM和x86_64架构。

2026-07-31 11:03:16 853

原创 【Docker】6.LXC容器实战

本文介绍了LXC容器技术的基本概念和操作命令,包括安装、配置和容器管理。LXC是早期容器技术之一,虽然目前已逐渐被Docker的libcontainer取代,但仍可作为了解容器技术的入门选择。文章详细列出了LXC常用命令(如创建容器lxc-create、启动lxc-start等),并提供了在Ubuntu和CentOS系统上的安装指南。通过实战示例展示了如何检查LXC运行状态、功能支持情况及可用容器模板,帮助读者快速掌握LXC的基本使用方法。

2026-07-31 11:02:40 173

原创 【Docker】5.CGroups资源控制实战

pidstat是Linux系统中用于监控进程资源使用情况的工具,可查看CPU、内存、I/O等指标。它属于sysstat软件包,支持Ubuntu/CentOS系统安装,常用参数包括-u(CPU)、-r(内存)、-d(I/O)等,可指定进程或命令进行监控,并设置采样间隔和次数。 stress是Linux下的压力测试工具,能对CPU、内存、I/O和磁盘施加负载。主要参数:-c模拟CPU负载,-i产生I/O压力,-m测试内存,配合--vm-bytes指定内存大小。特别适合验证系统稳定性时使用。

2026-07-31 11:01:57 258

原创 【Docker】4.NameSpace空间隔离实战

本文介绍了Linux系统中三个关键命令:dd、mkfs和df的使用方法。 dd命令:用于创建、转换和复制文件,通过参数控制块大小和数量,示例演示了创建8MB和80MB镜像文件,以及文本大小写转换操作。 mkfs命令:用于在设备或镜像上建立文件系统(如ext4),格式化后生成必要的文件系统结构(超级块、Inode等),示例展示了将8MB镜像格式化为ext4文件系统的过程。 df命令:用于显示磁盘空间使用情况,分析文件系统容量和可用空间(文中未展示具体示例)。 这些命令是Linux系统管理和容器技术的基础工具,

2026-07-31 11:01:24 176

原创 【Docker】3.Docker 组件与生产应用

Docker核心架构与生产实践指南 摘要: Docker采用客户端-服务器架构,由Client、Daemon和Host三大组件构成,类比酒店运营模式(旅客-前台-大楼)。核心组件包括镜像(装修模板)、容器(实际客房)和仓库(方案库)。生产环境中需注意版本选择,社区版(CE)适合开发者,企业版(EE)提供高级安全功能。内部采用分层结构(Docker Engine-containerd-runc),Kubernetes已转向直接使用containerd以提升效率。建议生产环境根据需求选择:标准K8s集群用con

2026-07-31 11:00:40 233

原创 【Docker】2.Docker 核心原理与架构

是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。传统的虚拟化技术(如VMwareKVM)主要作用在硬件层和操作系统层之间。它通过一个名为 Hypervisor(虚拟机管理器)的软件,在物理硬件上“伪造”出多套虚拟硬件。DockerLXC时代:借用别人的手动工具箱(0.9之前)。时代:开发自己的专用生产线(0.9 - 1.10。

2026-07-31 10:59:54 268

原创 【Docker】1.容器技术发展史

文章摘要 本文梳理了容器技术的发展历程,从1979年Unix V7的chroot技术萌芽开始,到2000年代FreeBSD Jail和Solaris Containers的演进,再到2006年Google贡献的cgroups技术。chroot首次实现了文件系统隔离,但存在安全缺陷;FreeBSD Jail引入了网络和进程隔离,而Solaris Containers则首次实现资源控制。现代Linux容器技术(如Docker)的核心是Namespaces(隔离视角)和cgroups(限制资源),二者的结合使得轻

2026-07-31 10:59:01 225

原创 【Redis】10.ZSet有序集合

Redis 的有序集合(Zset)是一种保留集合唯一性特点但通过分数(score)排序的数据结构。它支持添加/更新元素(ZADD命令),并可指定多种选项如XX(仅更新)、NX(仅添加)、CH(返回更新计数)、INCR(分数增减)等。Zset内部使用跳表实现,操作时间复杂度为O(log(N))。与列表和集合不同,Zset既可通过成员查找分数,也能按分数范围查询成员,适用于排行榜等场景。分数允许重复,但成员必须唯一,类似于考试分数系统。

2026-07-22 16:35:06 355

原创 【Redis】9.Set集合

Redis的Set集合是一种无序且不重复的数据类型,支持存储最多2^32-1个元素。Set类型提供了丰富的操作命令,包括SADD(添加元素)、SMEMBERS(获取所有元素)、SISMEMBER(判断元素是否存在)、SCARD(获取元素数量)、SPOP(随机移除元素)、SMOVE(移动元素到另一个Set)和SREM(删除指定元素)等。这些命令的时间复杂度多为O(1)或O(N),适用于需要高效处理唯一元素的场景,如社交网络的好友关系、标签系统等。

2026-07-22 16:33:34 108

原创 【Redis】8.List列表

Redis中的List是一种有序数据结构,支持在两端插入和删除元素,可以模拟栈和队列。主要操作包括:LPUSH(头插)、RPUSH(尾插)、LPOP(头删)、RPOP(尾删)、LRANGE(获取指定范围元素)等。列表元素可重复,支持通过索引访问。LPUSHX/RPUSHX仅在key存在时执行插入。List内部实现类似于双端队列,适用于消息队列、最新消息等场景。

2026-07-22 16:32:25 144

原创 【Redis】7.Hash表

Redis哈希(Hash)是一种键值对结构,其中值本身包含多个字段和对应的值。常见命令包括: HSET:设置字段值(可批量),返回成功设置的数量。 HGET:获取指定字段的值,不存在返回nil。 HEXISTS:检查字段是否存在,返回1或0。 HDEL:删除字段,返回成功删除的数量。 HKEYS/HVALS/HGETALL:分别获取所有字段、值或完整键值对,但需注意数据量大时可能阻塞服务器。 HMGET:批量获取多个字段的值,缺失字段返回nil。 哈希适合存储对象属性,但需谨慎使用全量遍历命令以避免性能问题

2026-07-22 16:31:04 129

原创 【Redis】6.计数其他命令

本文介绍了Redis中String类型的计数命令,包括INCR(自增1)、INCRBY(自增指定值)、DECR(自减1)、DECRBY(自减指定值)和INCRBYFLOAT(浮点数加减)。这些命令对不存在的key会视为0处理,但要求value必须是整数或浮点数,且INCRBYFLOAT支持科学计数法。所有命令的时间复杂度均为O(1),适用于计数器等场景。

2026-07-22 16:30:20 316

原创 【Redis】5.常见命令

本文介绍了Redis的常见数据类型及其内部实现机制。首先解释了Redis对外提供的五种数据结构类型(string、list、hash、set、zset)与内部多种编码实现的关系,如ziplist、quicklist等,这种设计既便于优化又适应不同场景需求。其次详细分析了Redis单线程架构的高性能原因:纯内存访问、非阻塞I/O多路复用技术以及避免线程竞争开销。最后重点讲解了String类型的特性,包括其值的多样性(字符串、数字、二进制数据)和基本命令SET的使用方法及选项。文章强调理解这些底层机制对Redi

2026-07-22 16:29:18 202

原创 【Redis】4.基本全局命令

Redis提供了5种基本数据结构,本章介绍了它们的特点、命令及应用场景。首先介绍了全局命令如SET/GET设置和获取键值,以及KEYS、EXISTS、DEL等通用操作。重点讲解了EXPIRE和TTL命令,用于设置和查询键的过期时间,这在验证码、优惠券等业务场景中非常实用。由于Redis单线程的特性,生产环境需谨慎使用KEYS *等可能阻塞服务器的命令。文章还提及Redis客户端形态,包括命令行、图形界面及API开发。理解这些基础命令和机制对Redis开发运维至关重要。

2026-07-22 16:28:44 172

原创 【Redis】3.Redis安装与命令行客户端

本文介绍了在不同Linux系统上安装和配置Redis 5.0的方法。主要内容包括:1) Ubuntu系统使用apt安装Redis,修改配置文件支持远程连接(bind 0.0.0.0和protected-mode no);2) CentOS 7通过SCL源安装,创建符号链接简化路径,配置工作目录和日志路径;3) CentOS 8直接使用yum安装。文章还提供了启动/停止Redis服务的命令,并说明如何通过systemd设置开机自启。特别强调Redis默认不支持Windows系统,建议在Linux环境下使用以获

2026-07-22 16:27:59 842

原创 【Redis】2.Redis重大版本

Redis版本演进与主要特性摘要(2.6-7.0): Redis采用奇偶版本区分开发版与稳定版,生产环境建议使用偶数版本。2.6版引入Lua脚本、毫秒级过期和位图命令;2.8版改进主从复制并增强Sentinel功能;3.0版首次支持分布式集群;3.2版新增GEO功能和quicklist结构;4.0版推出模块系统、LFU算法和混合持久化;5.0版新增stream数据类型并重构集群管理器;6.0版引入多线程IO和SSL连接,增强ACL控制;7.0版优化AOF存储结构,RDB升级至不兼容的v10格式,并强化安全设

2026-07-22 16:27:15 245

原创 【Redis】1.Redis特性

Redis是一款高性能的非关系型数据库,具备速度快、数据结构丰富、功能强大等8大特性。它支持多种数据结构如字符串、哈希、列表等,并提供了键过期、发布订阅、Lua脚本等功能。Redis采用单线程模型,减少了线程竞争开销,同时支持持久化和主从复制,确保数据安全和高可用性。与MySQL相比,Redis更适合处理热点数据和高并发场景,常被用作缓存或消息中间件。实际应用中,Redis常与MySQL结合使用,以平衡性能和存储需求。

2026-07-22 16:26:23 241

原创 【MySQL高阶】29.事务(4)

上一个小节介绍了实现事务隔离性的锁机制,但是频繁加锁与释放锁会对性能产生比较大的影响,为了提高性能,之后需要根据一定的查询规则找到唯一的可用版本,这个查找规则比较简单,以下图的版本链为例,在。),这时记录前的间隙没有被锁定,其他的事务就可以向这个间隙中插入记录,就会导致一个问题:事务。,这时事务只能读到了其他事务提交之后的数据,但会出现不可重复读的问题,比如事务。在某些场景中替代了低效的锁,在保证了隔离性的基础上,提升了读取效率和并发性。锁,锁住的是当前索引记录以及索引记录前面的间隙,那么在不加。

2026-06-08 08:51:30 935

原创 【MySQL高阶】28.事务(3)-死锁

以上四条是造成死锁的必要条件,必须同时满足,所以如果想要打破死锁,可以破坏以上四个条件之一,最常见的方式就是打破循环等待。前两个是锁自身的性质,一般不建议改。第三个是常见场景,不建议改,改了可能要调整业务逻辑。监视器包含了关于死锁和事务的相关信息,可以通过。来设置事务的隔离级别和访问模式。

2026-06-08 08:50:27 194

原创 【MySQL高阶】27.事务(2)-锁

如果学习过多线程技术,都知道在并发执行的过程中,多个线程对同一个共享变量进行修改时,在不加限制的情况下会出现线程安全问题,我们解决线程安全问题时,一般的做法是通过对修改操作进行加锁;语句以事务为基本单位,那么不同的客户端在对同一张表中的同一条数据进行修改的时候就可能出现相互影响的情况,为了保证不同的事务之间在执行的过程中不受影响,那么事务之间就需要要相互隔离,这种特性就是隔离性。锁):允许持有该锁的事务读取表中的一行记录,同时允许其他事务在锁定行上加另一个共享锁并读取被锁定的对象,但不能对其进行写操作;

2026-06-08 08:49:47 289

原创 【MySQL高阶】26.事务(1)

事务是把一组SQL语句打包成为一个整体,在这组SQL的执行过程中,要么全部成功,要么全部失败,这组SQL语句可以是一条也可以是多条。再来看一下转账的例子,如图:# ================账户表====================`name` varchar(255) NOT NULL, # 姓名`balance` decimal(10, 2) NOT NULL # 余额INSERT INTO account(`name`, balance) VALUES('张三', 1000);

2026-06-08 08:49:14 208

原创 【MySQL高阶】25.通用临时表空间

临时表存储的是临时数据,不能永久的存储数据,一般在复杂的查询或计算过程中用来存储过渡的中间结果。MySQL在执行查询与计算的过程中会自动生成临时表,比如表连接查询时得到的结果集就是一张临时表,因为结果中可能包含多个表中的字段并没有一张真实的表与之完全对应。student和score表是存在的,但是下面查询的大表是不存在磁盘中的,是两张表连接起来的结果,是在临时表里的结果。当查询的结果所包含的列,并没有一个真实的表与之对应,那么这个结果集就用一个临时表把数据组织起来。使用语句创建的临时表是外部临时表。

2026-06-08 08:38:42 259

原创 【MySQL高阶】24.重做日志(2)

LSN是的简写,称为日志序号;MySQL在运行期间,只要执行DML操作就会修改数据页,意味着会不断的生成RedoLogInnoDB为了记录生成的日志总量(字节数),设计了一个只增不减的全局变量,这个全局变量就是LSN,起始值:16*512 = 8192 ,最大值 2^64 - 1;当一个MTR所包含的一组RedoLog被记录在中时,实际是保存在区域,但是在统计LSN增量时,如果MTR跨Block保存时,是按照实际写入的日志大小加上所占的12Byte和块尾所占4Byte;示例:见下图。

2026-06-08 08:37:57 305

原创 【MySQL高阶】23.重做日志(1)

以一个Insert操作为例,对数据页的影响一般分为两种情况:如果写入记录所在的数据页空间充足,足够存储一条将要写入的记录,那么就可以直接写入,如下图所示:如果写入的数据页空间不充足,无法放下这条记录,由于在数据页中真实数据是按主键顺序排列的,那么就要新建一个数据页,对原来的数据进行调整,把一部分数据复制到新的数据页中,以便在目标数据页上留出足够的空间来保存即将写入的记录,此时对应的示意图如下所示:因为新插入的数据按照主键顺序排列的,那么就要新建一个数据页,对原来的数据进行调整。

2026-06-08 08:37:24 325

原创 【MySQL高阶】22.双写缓冲区,重做日志

当发生数据修改操作时追加重做日志,已落盘数据对应的日志位置被记录为一个检查点,检查点之前的数据被置为无效,所以重做日志文件可以循环使用。的作用是把事务在执行过程中对数据库所做的所有修改都记录下来,以便在系统崩溃重启后可以把事务所做的修改都恢复出来。配合可以删除索引页中一个范围的记录,而不用记录每一条记录的删除日志。这样就可以用很小的日志记录当前对数据页所做的修改,大 节省了空间。,表示写入一条行格式为非紧凑型的记录,对应的行格式为。,表示写入一条行格式为紧凑型的记录,对应的格式为。

2026-06-05 15:24:58 297

原创 【MySQL高阶】21.撤销表空间,撤销日志

当事务对数据进行修改的时候,每个修改操作都会在磁盘上创建与之对应的Undo Log,当事务需要回滚时,会根据Undo Log逐一进行撤销操作,从而保证事务的原子性。也就是说撤销日志是为事务的回滚操作而诞生的机制,它是一个撤销操作记录的集合。Undo日志保存在Undo日志段中,Undo日志段位于回滚段中,回滚段位于undo表空间(撤销表空间)和全局临时表空间中。官网描述:回滚日志是与单个读写事务相关联的一组回滚日志记录。回滚日志记录包含有关如何撤销事务对聚簇索引记录的最新更改的信息。

2026-06-04 15:45:00 308

原创 【MySQL高阶】20.InnoDB 磁盘文件

表空间可以理解为MYSQL为了管理数据而设计的一种数据结构,主要描述的对结构的定义,表空间文件是对定义的具体实现,以文件的形式存在于磁盘上,以后我们说的表空间指的就是表空间文件InnoDB存储引擎的表空间包括:系统表空间、独立表空间、通用表空间、临时表空间和撤销表空间介绍完撤销表空间之后将会详细详解撤销日志。

2026-06-03 20:38:28 767

原创 【MySQL高阶】19.变更缓冲区,自适应哈希索引,日志缓冲区

关于索引在数据库初阶已经做了介绍,我们知道索引分为聚集索引(主键)和二级索引(自定义)由于聚集索引具有唯一性,我们分析一下聚集索引为什么不能被放入变更缓存,假设表中有一个主键(ID),现在有两条INSER语句,都在插入数据时ID的值相同 (id=1) ,那么在变更缓冲区中就存在两个修改操作,如果以后要合并到缓冲池中,这时就会出现重复的主键值,所以聚集索引的修改不能被加入到变更缓冲区;

2026-06-03 13:46:57 220

原创 【MySQL高阶】18.缓冲池页管理

根据当前访问的记录自动推断后面可能会访问哪个页,并把他们提前加载到内存中,从而提高以后查询的效率,预读的页以并不一定会被真正的读取,从中间点插入可以使其尽快被淘汰。当用户修改数据时,并不是直接修改磁盘中的数据页,而是修改内存中数据页中的数据页,这时内存中数据页的状态从有实际数据变成了被修改。当用户进行数据查询时真实的数据从磁盘加载到内存中并分配一个内存中的数据页,这时内存中数据页的状态从空间变成了有实际的数据;当缓冲池初始化完成后,缓冲池中的数据页只是被分配了内存空间,并没有真实的数据(空闲页)

2026-06-02 20:08:58 264

原创 【MySQL高阶】17.InnoDB 内存结构​

定义了"控制块"的数据结构,控制块中有一个指向数据页内存地址的指针,实现"控制块"与数据页的一一对应,并且把每个控制块连接成一个双向链表,用一个单独的头节点记录链表的第一个和最后一个节点,这样通过遍历控制块链表就可以遍历内存中的数据页。可以看出缓冲池通过定义不同的数据结构,但最终管理的是每个数据页,这些数据页是从磁盘中加载到内存的,也就是说磁盘中的数据页加载到内存中之后,对应的就是内存中的数据页,并且页与页之间用链表连接。缓冲池组织数据的方式也可以说是缓冲池用到的数据结构,在这之前回顾一下。

2026-06-01 14:21:57 509

原创 【MySQL高阶】16.行结构

4.1.2 如何指定行格式?4.1.3 DYNAMIC 格式由哪些部分组成?4.2 数据区是怎么存储真实数据的?回滚指针示意:以下是一个建表的语句默认:插入一条值:再插入一条值:以下是一个建表的语句比如我插入一行数据,类型的值的长达大小是固定的,但是这种的变长字段存储的值的长度是不固定的,就需要存储起来,便于在真实数据区根据列的长度进行列和列之间的分割。例子:4.6.2 读取长度时如何处理粘包问题?上面的描述可能不如下面的图直观,可以看一下下面的图:如果长度,那么

2026-06-01 13:23:11 422

原创 【MySQL高阶】15.MySQL存储结构,页结构

LSN:是"的缩写,表示日志序号。用一个任意的、不断增加的值表示日志中记录的操作对应的时间点,用8字节的无符号长整形表示,后面会详细介绍如何生成LSN的值了解了行的基本结构和组织方式之后,那么当遍历页中的行时,从哪里开始到哪里结束呢?为了解决这个问题,每当创建一个新页,都会自动分配两个行:(这个页的第一个行和最后一个行)行类型为2的最小行Infimunheap_no位置固定为0号(这个页的第一个行)行类型为3的最大行Supremunheap_no位置固定为1号(这个页的最后一个行)

2026-06-01 08:48:10 566

原创 【MySQL高阶】14.MySQL存储结构

表空间文件是用来存储表中数据的文件,表空间文件的大小由存储的数据多少决定,不同的表空间文件存储数据的种类也有所不同,在MySQL系统表空间独立表空间通用表空间临时表空间撤销表空间这些在上面的InnoDB架构图中都有体现。局部性原理是指程序在执行时呈现出局部性规律,在一段时间内,整个程序的执行仅限于程序中的某一部分。相应地,执行所访问的存储空间也局限于某个内存区域,局部性通常有两种形式:时间局部性和空间局部性。时间局部性():如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。

2026-06-01 08:47:30 201

原创 【MySQL高阶】13.其他存储引擎

这里的相同表示所有表中的列都有相同的数据类型和索引信息。存储引擎创建的表,存储大量不被索引的数据且占用空间很小,一般用于归档数据的存储。存储引擎就像一个"黑洞",接受数据,但不存储数据,检索时总是返回一个空结果。引擎不够稳定和安全,所以在很多发行版的默认安装包中,,至于如何开发一个存储引擎我们在这里不做过多讨论。通过网络连接,真实数据保存在远程服务器上。表分组,并将它们作为一个对象引用。其他存储引擎或自定义存储引擎可以从实现了。两个环境中的表定义是相同的。接口的第三方和社区获取,

2026-06-01 08:46:47 239

allure-2.29.0

压缩包

2026-01-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除