You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

184 lines
4.7 KiB

3 months ago
# Spring Boot应用最新部署指南(性能优化版)
## 版本信息
- **版本**: 2.0
- **日期**: 2024
- **更新内容**: 包含数据库性能优化、SQL查询优化、分页功能和缓存配置
## 一、优化内容概述
### 1.1 已完成的性能优化
#### SQL查询优化
- 将`SELECT *`查询替换为显式字段列表,减少数据传输量
- 优化复杂JOIN查询,减少不必要的表连接
#### 分页功能实现
- 新增`selectAllManagersWithPagination`方法实现分页查询
- 添加`getManagersCount`方法获取总数用于分页计算
#### 缓存配置
- 为ManagersMapper添加LRU二级缓存配置
- 提升重复查询性能
#### 数据库索引
- 为关键字段创建索引,提升查询性能
- 详细索引脚本位于`CREATE_OPTIMIZATION_INDEXES.sql`
## 二、部署前准备
### 2.1 确认构建产物
- **WAR文件**: `target\web-0.0.1-SNAPSHOT.war`
- **索引脚本**: `CREATE_OPTIMIZATION_INDEXES.sql`
- **验证文件**: `src\main\resources\mapper`目录下的优化后的XML文件
### 2.2 环境要求
- **Tomcat**: 10.1.48(Jakarta EE 10兼容)
- **JDK**: 17或更高
- **数据库**: 支持索引创建的关系型数据库
## 三、部署流程
### 3.1 本地准备部署文件
```bash
# 1. 清理并构建项目
mvn clean package -DskipTests
# 2. 重命名WAR文件
copy target\web-0.0.1-SNAPSHOT.war target\DL.war
```
### 3.2 数据库索引优化(关键步骤)
在数据库服务器上执行索引创建脚本:
```sql
-- 执行CREATE_OPTIMIZATION_INDEXES.sql文件
-- 或直接执行以下索引创建语句
-- 为managers表创建索引
CREATE INDEX idx_managers_enterprise_id ON managers(enterprise_id);
CREATE INDEX idx_managers_user_name ON managers(user_name);
-- 为users表创建索引
CREATE INDEX idx_users_user_id ON users(user_id);
CREATE INDEX idx_users_user_name ON users(user_name);
CREATE INDEX idx_users_status ON users(status);
-- 为usermanagements表创建索引
CREATE INDEX idx_usermanagements_user_id ON usermanagements(user_id);
CREATE INDEX idx_usermanagements_role_id ON usermanagements(role_id);
CREATE INDEX idx_usermanagements_permission_level ON usermanagements(permission_level);
```
### 3.3 上传部署文件
使用SFTP或SCP上传文件到服务器:
```bash
# 上传WAR文件
scp target\DL.war user@your-server:/opt/tomcat/webapps/
# 上传索引脚本(用于备份)
scp CREATE_OPTIMIZATION_INDEXES.sql user@your-server:/opt/tomcat/
```
### 3.4 服务器部署操作
登录服务器后执行:
```bash
# 1. 停止Tomcat
cd /opt/tomcat/bin
./shutdown.sh
# 2. 等待Tomcat完全停止(约30秒)
# 3. 备份旧应用
cp -r /opt/tomcat/webapps/DL /opt/tomcat/backup/
# 4. 删除旧部署文件
rm -rf /opt/tomcat/webapps/DL*
# 5. 确保权限正确
chown -R tomcat:tomcat /opt/tomcat/webapps/
chmod -R 755 /opt/tomcat/webapps/
# 6. 启动Tomcat
./startup.sh
# 7. 监控部署日志
tail -f /opt/tomcat/logs/catalina.out
```
## 四、部署后验证
### 4.1 功能验证
- **访问应用**: `http://your-server-ip:8080/DL`
- **登录验证**: 确认可以正常登录
- **数据操作**: 验证增删改查功能正常
### 4.2 性能优化验证
#### 分页功能验证
- 访问负责人管理页面
- 确认列表显示已启用分页
- 验证翻页功能正常工作
- 检查数据加载速度是否提升
#### SQL查询性能验证
- 执行常用查询操作
- 确认响应时间明显改善
- 监控数据库慢查询日志
#### 缓存效果验证
- 连续访问相同数据页面
- 确认第二次及后续访问速度更快
## 五、回滚方案
如遇部署问题,请按以下步骤回滚:
```bash
# 1. 停止Tomcat
cd /opt/tomcat/bin
./shutdown.sh
# 2. 删除新部署文件
rm -rf /opt/tomcat/webapps/DL*
# 3. 恢复备份
cp -r /opt/tomcat/backup/DL /opt/tomcat/webapps/
# 4. 启动Tomcat
./startup.sh
```
## 六、批处理部署脚本
项目中提供了Windows批处理脚本`deploy_with_optimization.bat`,可以帮助准备部署文件。在项目根目录执行:
```bash
# 运行批处理脚本
.\deploy_with_optimization.bat
```
## 七、注意事项
1. **备份**: 部署前务必备份应用数据和数据库
2. **维护窗口**: 选择低流量时段进行部署
3. **索引优化**: 必须执行数据库索引创建脚本
4. **性能监控**: 部署后持续监控系统性能
5. **日志检查**: 定期检查应用日志,及时发现问题
6. **权限问题**: 确保Tomcat用户对所有必要目录有正确权限
## 八、相关文档
- **性能优化详细说明**: `PERFORMANCE_OPTIMIZATION_GUIDE.md`
- **Mapper XML部署指南**: `MAPPER_XML_DEPLOYMENT_GUIDE.txt`
- **数据库索引脚本**: `CREATE_OPTIMIZATION_INDEXES.sql`
---
> 部署完成后,请务必执行性能优化验证步骤,确保所有优化措施生效。