MySQL 系统学习 第五阶段:企业级 MySQL 实战开发 第五章:日志系统设计
📅 2026/7/15 4:21:45
👁️ 次浏览
一、为什么企业系统必须设计日志表在真实企业系统中用户的一切重要操作都需要记录。例如管理员张三 2026-07-13 10:30 删除用户系统需要知道谁操作的什么时间操作操作了什么操作结果如何修改前是什么修改后是什么这就是系统日志Log System二、企业日志主要分几类通常分为日志系统 ├── 登录日志 login_log │ ├── 操作日志 operation_log │ ├── 错误日志 error_log │ ├── 访问日志 access_log │ └── 数据变更日志 data_change_log实际后台管理系统最常见两个登录日志操作日志三、登录日志设计 login_log业务场景记录用户登录行为。例如管理员登录后台用户admin 时间 2026-07-13 10:00 IP 192.168.1.10 结果 成功表设计CREATE TABLE login_log ( id BIGINT PRIMARY KEY AUTO_INCREMENT, user_id BIGINT, username VARCHAR(50), login_ip VARCHAR(50), login_location VARCHAR(100), browser VARCHAR(100), os VARCHAR(100), status TINYINT, message VARCHAR(255), create_time DATETIME );四、为什么 login_log 需要保存 user_id例如user_id1001表示谁登录。方便查询SELECT * FROM login_log WHERE user_id1001;用途查询某用户登录记录安全审计异常检测五、为什么 login_log 还需要保存 username问题不是已经有user_id了吗为什么还存username原因1. 保留历史快照例如今天用户usernametom登录。第二天用户修改名字usernamejerry如果只保存user_id查询历史显示jerry登录错误。日志需要记录当时真实状态tom登录2. 避免关联查询查询日志如果login_log JOIN user需要额外关联。日志系统追求快速查询。所以日志表通常保存user_id username快照六、登录日志字段解释字段作用id日志编号user_id用户IDusername用户名快照login_ip登录IPbrowser浏览器os操作系统status登录状态message描述create_time时间七、操作日志 operation_log什么是操作日志记录用户对系统进行了什么业务操作。例如管理员删除用户记录用户admin 操作 删除用户 目标 user id100 时间 2026-07-13表CREATE TABLE operation_log( id BIGINT PRIMARY KEY AUTO_INCREMENT, user_id BIGINT, username VARCHAR(50), module VARCHAR(50), operation VARCHAR(100), method VARCHAR(200), request_url VARCHAR(255), request_method VARCHAR(20), request_param TEXT, response_result TEXT, ip VARCHAR(50), status TINYINT, create_time DATETIME );八、为什么 operation_log 需要记录“谁、什么时候、做了什么、影响了什么数据”这是日志系统核心。1. 谁字段user_id username回答谁操作。例如admin删除用户2. 什么时候字段create_time回答什么时候发生。3. 做了什么字段operation例如新增用户 修改角色 删除订单4. 影响了什么数据字段例如{ id:100, name:Tom }或者request_param保存请求参数。目的出现问题时可以追溯。九、为什么日志表通常不使用软删除普通业务表例如user可以删除。但是日志不应该删除。原因1. 日志就是证据例如安全审计需要知道过去发生了什么。2. 删除日志会破坏完整性例如管理员删除自己的操作记录。那么审计失效。3. 日志生命周期不同通常不是删除。而是归档。例如一年以前移动到login_log_history十、为什么大型系统需要日志分表或者归档因为日志增长非常快。例如大型系统每天100万登录记录。一年3.6亿。如果全部放login_log问题查询越来越慢索引越来越大备份困难解决方案方案1按时间分表例如login_log_2026_01 login_log_2026_02 login_log_2026_03方案2归档近期login_log保存3个月。历史login_log_archive方案3日志系统独立大型企业不会全部放 MySQL。会使用ElasticsearchLokiClickHouse十一、日志表和业务表的区别业务表日志表保存当前状态保存历史行为允许修改尽量只新增允许删除通常不删除关注业务关注追踪数量稳定快速增长十二、本章总结企业日志设计核心登录日志 记录谁登录系统 操作日志 记录谁修改系统核心字段user_id username operation request_param ip create_time设计原则日志保存历史快照日志尽量只新增不直接删除日志大数据量需要归档日志查询优先考虑性能本章思考题为什么 login_log 中已经保存 user_id还需要保存 username保存历史快照为什么日志表通常不采用软删除日志是审计证据为什么 operation_log 需要记录“谁、什么时候、做了什么、影响了什么数据”方便追责和恢复为什么大型系统通常需要对日志表进行分表或归档解决数据高速增长如果管理员修改用户角色operation_log 应该保存哪些信息保存操作者、目标、前后变化为什么日志系统通常采用追加写而不是更新已有记录保证历史真实性
一、引言:AI交互模式的范式转变在人工智能快速发展的今天,我们正经历着从简单的问答响应到复杂的任务执行的深刻转变。Chat(聊天)和Agent(智能体)代表了两种截然不同的AI交互范式,理解它们的差异…
📅 2026/7/15 4:21:45
文章目录 每日一句正能量 一、引言:为什么需要移动端APP逆向? 二、Frida环境搭建:从安装到首次注入 2.1 环境准备 2.2 验证连接 三、Frida注入架构与核心原理 3.1 注入流程 3.2 核心组件 四、Java层Hook:ART方法替换与参数拦截 4.1 Java层Hook基础 4.2 重载方法处理 4.3 构…
📅 2026/7/15 4:21:45
本周 AI 领域发生两件最值得开发者关注的事:第一,模型定价战全面爆发 — Grok 4.5 以 Opus 4.8 十分之一的价格实现接近的编码能力,但更重要的发现来自 arXiv 论文《The Harness Effect》:仅更换编排层即可使每任务成本降低 41%、…
📅 2026/7/15 4:21:45
1. 项目概述:为什么我们需要一个统一的自动化打包方案?在游戏开发团队里,打包这件事,说大不大,说小不小,但绝对是个“脏活累活”。我经历过太多这样的场景:策划要一个测试包,程序说“…
📅 2026/7/15 5:18:10
1. 项目概述与核心价值最近在整理一些密码学相关的工具库,发现一个基础但至关重要的算法——Miller-Rabin素性测试,在C社区里讨论热度一直不低。无论是做RSA密钥生成、哈希表扩容寻找大素数,还是单纯为了算法竞赛和面试准备,掌握一…
📅 2026/7/15 5:18:10
✨OpenClaw 全平台资源获取与完整安装流程 适配设备:Windows10/11 64 位、Mac 全机型 部署压缩包体积:45.7MB 运行特点:纯图形可视化操作、无代码操作门槛、本地数据存储 📌一、OpenClaw(小龙虾)工具定位与…
📅 2026/7/15 5:18:10
fork / exec / wait —— 进程的生与死在终端敲 ls -l,按下回车,shell 是怎么把这个命令跑起来的?答案是 Linux 进程模型的核心三件套:fork 复制自己 → exec 替换映像 → wait 等子进程退出。这篇把这条链路上每个系统调用、每个…
📅 2026/7/15 5:18:10
1. 项目概述:为什么选择Unity进行机器人仿真?如果你正在接触机器人开发,无论是学术研究、工业应用还是个人项目,大概率都听过一个词:仿真。在真实机器人上调试代码,成本高昂、风险大、效率低。一个简单的逻…
📅 2026/7/15 5:18:10
1. 国产CPU的技术引进路径国产CPU的发展历程可以看作是一部从技术引进到自主创新的奋斗史。目前国内六大CPU厂商(华为、飞腾、海光、兆芯、龙芯、申威)都采用了"引进-消化-吸收-创新"的技术路线,但各自的起点和路径却大不相同。1.1…
📅 2026/7/15 5:17:10
1. COM线程模型基础与CoInitializeEx核心作用在Windows平台开发中,组件对象模型(COM)的线程处理机制一直是开发者必须掌握的底层知识。作为COM初始化的门户函数,CoInitializeEx不仅决定了对象在何种线程环境下运行,更影响着整个组件的并发性能…
📅 2026/7/15 0:00:17
1. 为什么M芯片Mac用户需要降级到Monterey? 去年刚拿到M2芯片的MacBook Pro时,我第一时间升级到了Ventura系统。结果第三天就遇到了微信闪退、Final Cut Pro渲染卡顿的问题。后来在开发者论坛发现,不少专业软件对Ventura的适配都存在问题。这…
📅 2026/7/15 0:00:17
1. 背景与核心概念在AI大模型快速发展的今天,许多开发者和研究者都面临一个现实问题:如何在有限的硬件预算下实现高效的本地大模型部署。特别是对于个人开发者和小型团队来说,购买最新的高端显卡成本高昂,而利用现有的或二手硬件资…
📅 2026/7/15 0:00:17
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/14 6:35:02
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/14 12:06:52
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/14 7:15:18
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/14 15:11:56
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/15 2:24:18
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/14 15:11:56