服务端2月20日 19:34
为什么 VPN 连接速度慢?应该如何定位和优化?VPN 变慢不要先怪节点,先把问题切开看:本地网络、VPN 协议、服务器距离、加密开销、MTU 分片和运营商干扰,任何一环都可能拖慢速度。最稳的排查顺序是先关掉 VPN 测下载、上传、延迟和丢包,再打开 VPN 测同一组数据。
## 追问
### 怎么判断是 VPN 慢,还是本地网络慢?
关掉 VPN 测速,再打开 VPN 测同一地区、同一时间段的速度和延迟。裸连也慢,多半是 Wi-Fi、路由器或宽带问题。
### WireGuard 为什么通常比 OpenVPN 快?
WireGuard 协议更轻,代码路径短,常用 ChaCha20,加密开销更低。OpenVPN TCP 容易出现重...服务端2月20日 20:19
MariaDB 和 MySQL 有什么区别?生产环境怎么选?MariaDB 和 MySQL 同源,但现在已经不能简单当成同一个数据库的两个名字。MariaDB 最初由 MySQL 原始作者创建,目标是保持开源和兼容,同时加入更多存储引擎、优化器能力和集群方案;MySQL 由 Oracle 维护,生态稳定,云厂商支持广,MySQL 8.0 在窗口函数、CTE、JSON、权限模型等方面也补齐了很多能力。
## 追问
### MariaDB 能直接替换 MySQL 吗?
低版本和常规 SQL 场景通常迁移成本不高,客户端协议、基础语法和常用工具大多兼容。真正要小心的是高版本差异、系统表、复制、JSON 行为和认证插件。
### 两者功能主要差在哪里...服务端2月20日 20:20
MariaDB 存储引擎有哪些?不同场景怎么选?MariaDB 的存储引擎不是越多越好,而是要按事务、读写比例、数据规模和运维成本来选。默认优先 InnoDB,因为它支持事务、行级锁、崩溃恢复和外键,适合绝大多数 OLTP 系统。Aria 更像 MyISAM 的加强版,适合临时表、读多写少或不需要完整事务的场景;ColumnStore 面向分析查询;Spider 用来做分片和跨节点访问;MyRocks 适合写入密集、压缩率敏感的业务。
## 追问
### 为什么多数业务表建议用 InnoDB?
InnoDB 的优势不只是事务,还包括崩溃恢复、MVCC、行级锁和成熟生态。订单、账户、库存这类需要一致性的表,不应为了读性能换成非事务引擎...服务端2月20日 20:20
MariaDB 主从复制如何配置?复制模式怎么选?MariaDB 主从复制的核心是:主库写 binlog,从库通过 IO 线程拉取日志,再由 SQL 线程重放。最基础的是异步复制,性能好、延迟低,但主库宕机时可能丢最后几笔事务;半同步复制会等至少一个从库确认收到日志,可靠性更好,但写入延迟会上升;GTID 复制用全局事务 ID 标记事务,主从切换和故障恢复更稳。
## 追问
### 最小可用的主从复制怎么配置?
主库要开启 server_id、log_bin 和 ROW 格式 binlog,从库设置不同 server_id,并通过 CHANGE MASTER TO 指向主库。脚本要注意版本差异,新版本会逐步转向 replica 相关命...服务端2月20日 20:21
MariaDB 备份和恢复如何设计才可靠?MariaDB 备份不要只理解成把数据导出一份,真正要设计的是恢复能力。小库、低频变更、临时迁移,用 mysqldump 足够;线上核心库、数据量较大或恢复时间敏感,优先用 Mariabackup 做物理备份,再配合 binlog 做时间点恢复。备份策略一般按 RPO 和 RTO 倒推:能接受丢 5 分钟数据,就至少保留连续 binlog;要求 30 分钟内恢复,就不能只靠几十 GB 的 SQL 文件慢慢导入。
## 追问
### mysqldump 和 Mariabackup 怎么选?
mysqldump 是逻辑备份,优点是可读、可跨版本、适合单库单表恢复,缺点是大库导出和导入都慢。...服务端2月20日 20:21
MariaDB 性能调优应该先看慢查询还是参数?MariaDB 性能调优不要一上来就改几十个参数。更可靠的顺序是:先确认慢在哪里,再看执行计划和索引,最后才调整 InnoDB、连接数、临时表、排序缓冲等配置。参数调优像放大器,SQL 和索引方向对了,它能放大性能;方向错了,它只会把问题藏得更深。
## 追问
### 慢查询应该怎么打开和分析?
开启 `slow_query_log`,把 `long_query_time` 设置成符合业务的阈值。再按出现频率、扫描行数、总耗时排序,不要只盯单次最慢 SQL。
### 最关键的参数是哪个?
InnoDB 场景先看 `innodb_buffer_pool_size`,因为它影响数据页和索...服务端2月20日 20:22
MariaDB 如何做安全配置?哪些设置最容易被忽略?MariaDB 安全配置不能只理解成“把 root 密码改复杂一点”。更稳妥的做法是从账号权限、网络入口、传输加密、文件导入导出、审计日志和备份存放几个层面一起收紧。很多事故不是数据库漏洞导致的,而是测试账号没删、远程访问开太大、备份文件裸放。
## 追问
### 最小权限应该怎么落地?
应用不要连 root,也不要授予 `ALL PRIVILEGES`。按业务库创建专用账号,只授予需要的 SELECT、INSERT、UPDATE、DELETE 等权限。
### 远程访问应该怎么限制?
`bind-address` 不要直接监听公网地址,账号 host 也不要写成 `%`。需要临时排...服务端2月20日 20:23
MariaDB 分区表有哪些类型?如何创建和维护?MariaDB 分区表适合处理持续增长、访问模式明确的大表,比如日志、订单、流水。它不是把业务拆成多张表,而是在一张逻辑表下面按规则拆出多个物理分区;查询仍写同一张表名,优化器在条件命中分区键时可以做分区裁剪。分区能降低历史数据维护成本,也能减少部分扫描范围,但不能替代索引。
## 追问
### MariaDB 分区表有哪些类型?
常见类型有 RANGE、LIST、HASH 和 KEY。RANGE 适合按时间、ID 区间切分;LIST 适合地区、业务状态;HASH/KEY 主要用来均匀打散。
### RANGE、LIST、HASH、KEY 应该怎么选?
查询经常带 `created_...前端2月21日 10:43
Expo 框架适合什么类型的 React Native 项目?Expo 是建立在 React Native 之上的框架和工具链,它把创建项目、真机预览、常用原生能力、路由、云端构建、商店提交和 OTA 更新放到一套工作流里。它适合快速验证产品、跨平台业务 App、前端团队主导的移动端项目,以及希望少碰 Xcode、Gradle、证书和原生桥接的团队。
## 追问
### Expo 和 React Native 是什么关系?
React Native 是底层跨平台运行框架,负责把 React 组件渲染成原生 UI;Expo 是围绕 React Native 的 SDK、CLI、路由和云服务。
### Expo Go、Development Bui...前端2月21日 10:44
Expo 常用 API 如何在项目里安全使用?Expo 常用 API 是 Expo SDK 对原生能力的封装,常见场景包括相机、定位、通知、文件系统、媒体库、传感器、安全存储和剪贴板。它的好处是用 JavaScript/TypeScript 调 iOS、Android 能力,少写原生桥接;安全使用的重点是权限、平台差异、开发构建方式和失败兜底是否处理完整。
## 追问
### Expo 常用 API 可以分成哪些类型?
设备能力类包括 Camera、Location、Notifications、Sensors;系统能力类包括 FileSystem、SecureStore、Clipboard;媒体类包括 ImagePicker、Au...