MySQL 进阶篇
体系结构 连接层 最上层,负责客户端和连接服务,完成连接处理、授权认证以及相关的安全方案 为安全接入的客户端验证其所具有的操作权限 服务层 完成大多数核心服务功能,如 SQL 接口 完成缓存的查询 SQL 的分析和优化 部分内置函数的执行 所有夸存储引擎的功能(过程、函数) 引擎层 存储引擎真正负责了 MySQL 中数据的存储和提取 服务器通过 API 和存储引擎进行通信 不同的存储引擎具有不同的功能(且索引也不同) 存储层 将数据存储在文件系统之上 完成与存储引擎的交互 存储引擎概述存储数据、简历索引、更新/查询数据等技术的实现方式, 查询使用的存储引擎show engines; InnoDB兼顾高可靠性和高性能的通用存储引擎,在 MySQL 5.5 之后,为默认存储引擎 支持事务(DML 操作遵循 ACID 模型:原子性、一致性、持久性、隔离性) 行级锁,提高并发访问性能 支持外键约束 使用 .idb 文件存储数据,每一张表都对应一个表空间文件,存储该表的表结构(frm,sdi)、数据、索引 逻辑存储结构 Tablespace ...
MongoDB 文档设计
关联数据存储方案如何处理需要依赖其他表配置的数据,主要取决于数据之间的关系和使用场景 嵌入式文档适用场景: 配置数据较小且不经常变化 主数据和配置数据总是一起被查询 配置数据没有独立存在的必要 一对少或一对一关系 示例结构: // products 集合 { _id: "prod123", name: "智能手机", price: 2999, // 直接嵌入配置数据 displayConfig: { showPrice: true, layout: "grid", colorTheme: "dark" }, inventoryConfig: { lowStockThreshold: 10, reorderPoint: 5 } } 优点: 读取性能高(单次查询获取所有数据) 数据一致性维护简单 无需额外查询关联数据 缺点: 可能导致数据冗余(如果多个文档共享相同配置) 配置更新时需要更新所有相关文档 文档可能变得过大 ...
MySQL 基础篇
MySQL 相关概念 使用启动和停止在 Win + R 中输入 services.msc 或在命令行(管理员模式)中输入: net start mysql80 net stop mysql80 注意:此处 mysql80 是在安装时指定的名称 客户端连接 方法一:MySQL 提供的客户端命令行工具 在菜单栏中寻找 MySQL Command Line Client 启动后输入密码 方法二:系统自带的命令行工具执行指令 mysql [-h 127.0.0.1] [-P 3306] -u root -p 注意:需要配置环境变量 关系型数据库建立在关系模型基础上,由多张相互连接的二维表组成的数据库 数据模型 DBMS:一个数据库管理系统 图形化界面工具配置信息 展开数据库 数据库操作创建数据库 表操作创建表 插入元素 对表的其他操作 使用 SQL 代码 SQL通用语法 字段类型数值类型 无符号表示需要写在类型后方,如:int unsigned 对于浮点数需要设置精度和标度,精度是数字最长整体长度,标度是保留小数点位数,如:double(4,1),整数...
Hot100-Go
数组T14. 除自身以外数组的乘积 Given an integer array nums, return an array answer such that answer[i] is equal to the product of all the elements of nums except nums[i]. The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer. You must write an algorithm that runs in O(n) time and without using the division operation. 如果是遍历每个数,令每个数在每个位置上相乘,则时间复杂度为 $O(n^2)$,不满足题意 使用 lmul 和 rmul 记录:当前这个数左侧所有数的乘积与当前这个数右侧所有数的乘积,就能使用 lmul[i]*rmul[i] 得到对应位置的乘积 func productExceptSelf(nums []int) []...
Centos7 常用指令
基本概念 特性 开源、免费、稳定、安全、可处理多并发 运用领域 服务器领域(最强)、嵌入式领域 发行版 各个公司以 Linux 内核实现的不同版本 虚拟机 分区 /boot 一般:1GB swap 交换分区 一般:2GB 用于临时充当内存,当内存满时,仍然有任务要运行,则会使用 swap 分区来临时存放任务 / 根分区 占用余下的所有存储空间 网络连接模式网络连接问题 桥接模式 虚拟系统可以直接和外部系统通讯,但是容易造成 IP 冲突 NAT 模式(网络地址转换模式) 在为虚拟机创建一个与主机网段不同的网段之后,也会为主机创建一个新的网段,这两个网段可以互通 虚拟机可以通过主机代理间接和外部通讯,且不会造成 IP 冲突。但是外部无法访问虚拟机 仅主机模式 创建一个独立的系统 虚拟机克隆如果已经安装好了一台 Linux 系统,可以使用克隆来获得更多的系统 直接复制一份安装好的虚拟机文件 之后再 VW 中打开即可 使用 VmWare 的克隆操作 需要先关闭系统 连接克隆 仅仅是引用 完整克隆 真实的...