2MySQL的调控按钮 —— 启动选项和系统变量
启动选项和配置文件标签: MySQL 是怎样运行的
如果你用过手机,你的手机上一定有一个设置的功能,你可以选择设置手机的来电铃声、设置音量大小、设置解锁密码等等。假如没有这些设置功能,我们的生活将置于尴尬的境地,比如在图书馆里无法把手机设置为静音,无法把流量开关关掉以节省流量,在别人得知解锁密码后无法更改密码~ MySQL的服务器程序和客户端程序也有很多设置项,比如对于MySQL服务器程序,我们可以指定诸如允许同时连入的客户端数量、客户端和服务器通信方式、表的默认存储引擎、查询缓存的大小吧啦吧啦的设置项。对于MySQL客户端程序,我们之前已经见识过了,可以指定需要连接的服务器程序所在主机的主机名或IP地址、用户名及密码等信息。
这些设置项一般都有各自的默认值,比方说服务器允许同时连入的客户端的默认数量是151,表的默认存储引擎是InnoDB,我们可以在程序启动的时候去修改这些默认值,对于这种在程序启动时指定的设置项也称之为启动选项(startup options),这些选项控制着程序启动后的行为。在MySQL安装目录下的bin目录中的各种可执行文件,不论是服务器相关的程序(比如mys ...
1装作自己是个小白 —— 重新认识MySQL
初识MySQL标签: MySQL是怎样运行的
MySQL的客户端/服务器架构以我们平时使用的微信为例,它其实是由两部分组成的,一部分是客户端程序,一部分是服务器程序。客户端可能有很多种形式,比如手机APP,电脑软件或者是网页版微信,每个客户端都有一个唯一的用户名,就是你的微信号,另一方面,腾讯公司在他们的机房里运行着一个服务器软件,我们平时操作微信其实都是用客户端来和这个服务器来打交道。比如狗哥用微信给猫爷发了一条消息的过程其实是这样的:
消息被客户端包装了一下,添加了发送者和接受者信息,然后从狗哥的微信客户端传送给微信服务器;
微信服务器从消息里获取到它的发送者和接收者,根据消息的接受者信息把这条消息送达到猫爷的微信客户端,猫爷的微信客户端里就显示出狗哥给他发了一条消息。
MySQL的使用过程跟这个是一样的,它的服务器程序直接和我们存储的数据打交道,然后可以有好多客户端程序连接到这个服务器程序,发送增删改查的请求,然后服务器就响应这些请求,从而操作它维护的数据。和微信一样,MySQL的每个客户端都需要提供用户名密码才能登录,登录之后才能给服务器发请求来操作某些数据。我们日常 ...
0万里长征第一步(非常重要) —— 如何愉快的阅读本小册
购买前警告⚠️
此小册并非数据库入门书籍,需要各位知道增删改查是啥意思,并且能用 SQL 语言写出来,当然并不要求各位知道的太多,你甚至可以不知道连接的语法都可以。不过如果你连SELECT、INSERT这些单词都没听说过那本小册并不适合你。
此小册非正经科学专著,亦非十二五国家级规划教材,也没有大段代码和详细论证,有的全是图,喜欢正经论述的同学请避免购买本小册。
此小册作者乃一无业游民,非专业大佬,没有任何职称,只是单单喜欢把复杂问题讲清楚的那种快感,所以喜欢作者有 Google、Facebook 高级开发工程师,二百年工作经验等 Title 的同学请谨慎购买。
此小册是用于介绍 MySQL 的工作原理以及对我们程序猿的影响,并不是介绍概念设计、逻辑设计、物理设计、范式化之类的数据库设计方面的知识,希望了解上述这些知识的同学来错地方了。
文章标题中的“从根儿上理解MySQL”其实是专门雇了 UC 震惊部小编起的,纯属为了吸引大家眼球。严格意义上说,本书只是介绍MySQL内核的一些核心概念的小白进阶书籍。大家读完本小册也不会一下子晋升业界大佬,当上 CTO,迎娶白富美,走上人生巅 ...
深入浅出领域驱动设计 (DDD):从分层架构到上下文映射
在软件开发中,我们经常面临业务逻辑复杂、代码耦合度高、难以维护的困境。领域驱动设计 (Domain-Driven Design, DDD) 提供了一套完整的思想体系,帮助我们通过将软件实现与核心业务概念紧密绑定,来解决复杂业务系统的设计问题。
本文将从战术设计(分层架构)和战略设计(限界上下文与映射)两个维度,为你梳理 DDD 的核心概念。
一、 战术设计:分层架构 (Layered Architecture)DDD 的分层架构旨在通过 **关注点分离 (Separation of Concerns)**,确保业务逻辑的纯粹性,不被技术实现细节污染。
1. 典型的四层架构在 DDD 中,标准的架构通常分为四层,从上到下依次为:
(1) 用户接口层 (User Interface / Presentation Layer)
职责:系统与外界(人或外部系统)交互的窗口。负责向用户展示信息和解释用户指令。
包含:Controller、DTO、API 接口定义。
核心原则:不包含任何业务逻辑。只负责数据格式转换(如 JSON 转对象)和简单校验。
(2) 应用层 (Applicat ...
Docker容器-基础篇
docker容器-基础篇1、docker容器的安装1.1 初始化安装安装docker容器需要先配置好一台centos虚拟机,并配置好网络连接,以及挂载完iso镜像文件。确保yum可以正常使用
1234先安装必要的包yum -y install gccyum -y install gcc-c++yum install -y yum-utils
配置stable镜像仓库 并从国内下载
123456(阿里)yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo (官网)yum-config-manager --add-repo https://download.docker.com/linux/linux/centos/docker-re.repo配置完后可以使用yum install vim 测试一下yum是否还能正常使用,如不能,请检查当前网络环境,然后重新执行上一句命令。
更新yum软件包索引(可以跳过、缓存yum加快下载速度)
1yum makeca ...
MySQL MVCC & 并发更新实验笔记
MySQL MVCC & 并发更新实验笔记
本文记录了使用 HeidiSQL 和 MySQL InnoDB 引擎进行的 MVCC 实验过程,验证版本链行为、事务隔离可见性以及连接行为。
⚠️ 一、数据库并发问题并发读写会引发以下四类经典问题:
脏读(Dirty Read) 读取到了其他事务尚未提交的数据。
不可重复读(Non-Repeatable Read) 在同一事务中多次读取同一行数据,每次结果不同(其他事务修改了这行并提交)。
幻读(Phantom Read) 同一事务中两次执行相同条件的 SELECT,结果集行数不同(其他事务插入或删除了符合条件的行)。
🔒 二、事务隔离级别(SQL 标准)
隔离级别
脏读
不可重复读
幻读
实现方式
READ UNCOMMITTED
✅ 可能
✅ 可能
✅ 可能
无 MVCC
READ COMMITTED
❌ 防止
✅ 可能
✅ 可能
部分 MVCC
REPEATABLE READ
❌ 防止
❌ 防止
✅ 可能
完整 MVCC
SERIALIZABLE
❌ 防止
❌ 防止
❌ 防止
加锁 ...
CSS 高斯模糊背景图的实现技巧
CSS 高斯模糊背景图的实现技巧:完整实战与原理拆解在现代 Web 页面中,常见一种视觉效果:清晰的前景图 + 虚化的背景图层。这类设计可以让页面更加美观、聚焦重点,并广泛应用于音乐播放器、视频平台、官网头图等界面。
本文将通过一个完整 HTML 示例,逐步剖析如何使用 padding + margin + blur 高效、安全地实现该效果,并详解背后的盒模型原理。
📷 效果预览与结构概览我们最终实现的页面包含以下几种状态的背景展示:
原始背景图(无处理)
只加 padding
加 padding + margin
模糊背景图 + 清晰前景图
✅ 核心原理:三步实现“模糊不偏移”的背景图步骤一:使用 padding 为模糊留出空间padding: 10px;
模糊(blur)会向外扩散一定像素,因此必须预留空间。否则边缘会出现白边或被裁剪。
视觉效果:图片像是“缩进”了,显示更多边缘内容。
步骤二:使用 margin: -10px 拉回视觉偏移margin: -10px;
因为上一步原内容区域被缩小了,所以我们使用负外边距将原区域拉回正确的位置,避免内容视觉错位 ...
JWT 鉴权中的单 Token 与双 Token方案
JWT 鉴权中的单 Token 与双 Token 方案对比:控制力、安全性与实用性解析在使用 JWT 进行身份验证与续签时,常见有两种方案:
方案一:双 Token 模式(Access Token + Refresh Token)
方案二:单 Token 模式(JWT 中嵌入续签时间)
这两种方案都在社区中被使用,但在安全性、控制力和设计合理性上存在关键差异。本文将系统性地比较这两种方案,并解释为什么“双 Token 模式”在实际项目中被广泛采用。
✅ 背景介绍方案一:双 Token 模式
access_token:短期有效,用于访问受保护资源,通常 15-30 分钟过期;
refresh_token:长期有效,用于换发新的 access_token,通常存放在 HttpOnly Cookie,1 小时~7 天过期。
续签过程必须通过服务器验证 refresh_token,服务器主动决定是否签发新 token。
方案二:单 Token 模式
仅使用一个 JWT;
JWT 中添加一个自定义字段,如 renew_after;
当 token 尚未过期但已超过 renew_after ...
CSS中的Sticky定位
目标效果:右侧滚动条在最上方时,左侧导航栏距离顶端有一定距离当滚动条往下滑动时,左侧导航栏不会被划到画面外
演示代码:html
12345678<div class="container"> <div class="left"> <div class="sticky-box"> 我是 sticky,滚动时会粘在视口顶部 10px </div> </div> <div class="right"> <p>右侧内容</p> </div></div>
css
123456789101112131415161718.container { display: flex; align-items: flex-start; } .left & ...
CSS页面常见布局
这里未使用flex,grid等布局,只是使用float等操作实现主流网页的基本布局草图效果如下:
首先整体是一个container容器,其中分成三部分header,body,foot。body中又分成三部分,第一部分是一行两列,第二部分是一行三列,第三部分是多行多列。三部分都是使用float实现浮动,自动先左/右贴近。注意点:在元素浮动后,需清除浮动这里展示至少两种方法第一种方法:使用clear:both的div跟在后面清除浮动 在第一行里追加了一个clear:bath的div,适用于没有对div有统一样式的情况第二种方法:在父级容器上使用CSS中的::after实现自动在最后追加一个高度为0,clear:both的空div完整代码如下:
代码如下:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858 ...
