Files
my-blog/mysql/init.sql
T

89 lines
7.0 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 创建数据库
CREATE DATABASE IF NOT EXISTS `my_blog` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE `my_blog`;
-- 1. 分类表
CREATE TABLE IF NOT EXISTS `category` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(50) NOT NULL UNIQUE,
`description` VARCHAR(255),
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 2. 文章表
CREATE TABLE IF NOT EXISTS `post` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY,
`title` VARCHAR(255) NOT NULL,
`summary` VARCHAR(500),
`content` LONGTEXT NOT NULL,
`author` VARCHAR(50) DEFAULT '旺总',
`category_name` VARCHAR(50) DEFAULT '技术杂谈',
`tags` VARCHAR(255),
`read_time` VARCHAR(20) DEFAULT '3 min',
`views` INT DEFAULT 0,
`likes` INT DEFAULT 0,
`status` VARCHAR(20) DEFAULT 'PUBLISHED',
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 3. 评论表
CREATE TABLE IF NOT EXISTS `comment` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY,
`post_id` BIGINT NOT NULL,
`author` VARCHAR(50) NOT NULL,
`content` TEXT NOT NULL,
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
INDEX `idx_post_id` (`post_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 插入默认分类
INSERT IGNORE INTO `category` (`name`, `description`) VALUES
('云原生 & Linux', '容器化编排、GCP/云服务器运维、系统调优与网络配置实战'),
('Java & Spring Boot', 'Spring Boot 3 微服务架构、JPA 数据库持久化与后端工程规范'),
('AI & 本地模型', 'Ollama 本地大模型部署、DeepSeek R1 性能压测与应用集成'),
('全栈开发 & CI/CD', '前后端分离架构、Gitea Actions 自动化流水线交付');
-- 插入预置精品文章
INSERT INTO `post` (`title`, `summary`, `content`, `author`, `category_name`, `tags`, `read_time`, `views`, `likes`, `created_at`)
SELECT
'云原生实践:在 Google Cloud 台湾节点搭建高性能 Ubuntu 与 1Panel',
'本文记录了如何通过 GCP 赠金在亚洲低延迟机房部署 4核16G 高性能云服务器,并使用现代化容器面板 1Panel 进行运维管理实录。',
'# 云原生实践:在 Google Cloud 台湾节点搭建高性能服务器\n\n在挑选云服务器的过程中,综合对比了各大厂商的免费策略与性能表现,最终选择了 **Google Cloud 台湾节点 (`asia-east1`)**。\n\n## 核心硬件与网络配置\n- **规格**:`e2-standard-4`(4 vCPU,16 GB 内存)\n- **系统**:Ubuntu 22.04 LTS (x86_64)\n- **延迟**:到中国大陆仅 30~50ms,操作极为丝滑。\n\n## 为什么采用 1Panel 面板?\n相比传统臃肿的面料,1Panel 深度拥抱 **Docker 容器化**,所有应用(MySQL、OpenResty、Gitea)完全容器隔离,真正做到“环境随用随建,数据挂载持久化”。\n\n```bash\n# 快速检查 Docker 运行状态\ndocker ps --format "table {{.Names}}\\t{{.Status}}\\t{{.Ports}}"\n```\n\n> 💡 **运维心得**:永远在云平台控制台统一放行防火墙端口,切勿盲目在系统内部启用 UFW,避免失联风险。',
'旺总',
'云原生 & Linux',
'GCP,Ubuntu,1Panel,Linux',
'4 min',
648,
52,
NOW()
WHERE NOT EXISTS (SELECT 1 FROM `post` WHERE `title` = '云原生实践:在 Google Cloud 台湾节点搭建高性能 Ubuntu 与 1Panel');
INSERT INTO `post` (`title`, `summary`, `content`, `author`, `category_name`, `tags`, `read_time`, `views`, `likes`, `created_at`)
SELECT
'探索本地大模型:从 Ollama 运行 DeepSeek R1 到 CPU 推理性能调优',
'深度解析在纯 CPU 服务器上运行 DeepSeek R1 和通义千问 2.5 的真实表现,揭开 2050 Token 预填充延迟背后的机制。',
'# 探索本地大模型:从 Ollama 到 Open WebUI 性能调优实战\n\n近期 DeepSeek R1 推理思考模型火遍全球,我们在 4核16G 的服务器上进行了本地大模型的全链路压测。\n\n## 1. 架构搭建\n- **模型发动机**:`Ollama` 容器\n- **交互界面**:`Open WebUI` 容器\n- **网络通信**:通过 Docker 网关 `http://172.17.0.1:11434` 极速直连\n\n## 2. 性能排查与调优秘籍\n测试过程中遇到了“每次提问卡顿 50 秒”的问题,经过 `top` 分析和指标剖析:\n1. **解除容器 CPU 配额**:确保 4 线程全开(`eval rate` 提升至 14 tokens/s);\n2. **内存永久常驻**:注入 `OLLAMA_KEEP_ALIVE=-1`,避免 5 分钟超时后重新读盘;\n3. **清空全局默认 Prompt**:消除了默认附带的 2050 历史 Token,读题耗时从 60s 骤降至 0.2s!\n\n```bash\n# 测试模型运行性能\ndocker exec -it 1Panel-ollama-nzre ollama run qwen2.5:1.5b --verbose\n```\n\n> 纯 CPU 跑 7B 参数是物理带宽瓶颈,日常开发推荐搭配 1.5B~3B 模型,速度与逻辑达到最佳平衡!',
'旺总',
'AI & 本地模型',
'DeepSeek,Ollama,OpenWebUI,性能调优',
'6 min',
982,
88,
NOW()
WHERE NOT EXISTS (SELECT 1 FROM `post` WHERE `title` = '探索本地大模型:从 Ollama 运行 DeepSeek R1 到 CPU 推理性能调优');
INSERT INTO `post` (`title`, `summary`, `content`, `author`, `category_name`, `tags`, `read_time`, `views`, `likes`, `created_at`)
SELECT
'全栈工程师实战:Spring Boot 3 + MySQL 8.0 持久化与 Gitea CI/CD 自动化交付',
'从零构建工业级 Spring Boot 3 分层架构,结合 MySQL 8.0 数据库持久化存储与私有 Gitea Actions 自动化流水线。',
'# 全栈工程化实践:Spring Boot 3 + MySQL 8.0 + CI/CD 自动化\n\n现代化开发的精髓在于**“把数据交给专业数据库持久化,把重复劳动交给自动化流水线”**。\n\n## 全栈架构一览\n```text\n[开发者本地 IDEA] ──git push──▶ [私有 Gitea 仓库]\n │\n (Gitea Actions 触发流水线)\n ▼\n [Docker Compose 全栈构建]\n │\n ┌───────────────────────────┼───────────────────────────┐\n ▼ ▼ ▼\n [MySQL 8.0 容器] [Spring Boot 3 容器] [Nginx 静态反代容器]\n```\n\n## 数据持久化规范\n- 数据文件挂载至命名卷 `mysql_data`,容器重启或重建数据零丢失;\n- Spring Data JPA 实现对象关系映射,自动完成数据库结构维护;\n- 统一 RESTful API 与响应封装,全栈开发得心应手!',
'旺总',
'全栈开发 & CI/CD',
'Spring Boot,MySQL,JPA,CI/CD',
'5 min',
756,
64,
NOW()
WHERE NOT EXISTS (SELECT 1 FROM `post` WHERE `title` = '全栈工程师实战:Spring Boot 3 + MySQL 8.0 持久化与 Gitea CI/CD 自动化交付');