database-config-analysis.md
5.69 KB
数据库配置分析与建议
当前配置分析
从提供的 YAML 配置文件中,发现以下情况:
1. 缺失的数据库配置
当前配置文件中缺少直接的数据源配置,需要添加以下配置:
spring:
datasource:
# 主数据源配置
master:
url: jdbc:mysql://localhost:3306/saas
username: saas
password: P89cZHS5d7dFyc9R
driver-class: com.mysql.cj.jdbc.Driver
type: com.zaxxer.hikari.HikariDataSource
hikari:
maximum-pool-size: 20
minimum-idle: 5
connection-timeout: 30000
idle-timeout: 600000
max-lifetime: 1800000
# 动态数据源配置(多租户支持)
dynamic:
enabled: true
primary: master
strict: false
datasource:
# 店匠生产数据库
shoplazza:
url: jdbc:mysql://120.79.247.228:3316/saas
username: saas
password: P89cZHS5d7dFyc9R
driver-class: com.mysql.cj.jdbc.Driver
type: com.zaxxer.hikari.HikariDataSource
2. 当前已有的相关配置
Redis 配置
spring:
data:
redis:
host: 127.0.0.1
port: 6379
database: 0
timeout: 5000ms
lettuce:
pool:
max-active: 200
max-idle: 20
min-idle: 5
max-wait: -1ms
MyBatis Plus 配置
mybatis-plus:
configuration:
map-underscore-to-camel-case: true
global-config:
db-config:
id-type: NONE
logic-delete-value: 1
logic-not-delete-value: 0
3. 从项目结构推断的数据库配置
基于之前分析的项目文件,完整的数据库配置应该包括:
3.1 连接池配置
spring:
datasource:
master:
hikari:
# 连接池最大连接数
maximum-pool-size: 20
# 连接池最小空闲连接数
minimum-idle: 5
# 连接超时时间(毫秒)
connection-timeout: 30000
# 空闲连接超时时间(毫秒)
idle-timeout: 600000
# 连接最大生命周期(毫秒)
max-lifetime: 1800000
# 连接测试查询
connection-test-query: SELECT 1
3.2 多数据源配置
spring:
datasource:
dynamic:
enabled: true
primary: master
strict: false
datasource:
# 主库(读写)
master:
url: jdbc:mysql://120.79.247.228:3316/saas
username: saas
password: P89cZHS5d7dFyc9R
driver-class: com.mysql.cj.jdbc.Driver
# 从库(只读)- 可选配置
slave:
url: jdbc:mysql://slave-host:3306/saas
username: saas_readonly
password: readonly_password
driver-class: com.mysql.cj.jdbc.Driver
3.3 JPA/Hibernate 配置
spring:
jpa:
show-sql: false
hibernate:
ddl-auto: none
naming:
physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL8Dialect
format_sql: true
use_sql_comments: true
jdbc:
batch_size: 50
order_inserts: true
order_updates: true
4. 环境配置建议
开发环境(application-dev.yml)
spring:
profiles:
active: dev
datasource:
master:
url: jdbc:mysql://localhost:3306/saas_dev
username: root
password: root
driver-class: com.mysql.cj.jdbc.Driver
hikari:
maximum-pool-size: 10
minimum-idle: 2
connection-timeout: 30000
# 开发环境 SQL 输出
logging:
level:
com.hsyl.saas.mapper: DEBUG
org.springframework.jdbc.core: DEBUG
生产环境(application-prod.yml)
spring:
profiles:
active: prod
datasource:
master:
url: jdbc:mysql://120.79.247.228:3316/saas
username: saas
password: P89cZHS5d7dFyc9R
driver-class: com.mysql.cj.jdbc.Driver
hikari:
maximum-pool-size: 50
minimum-idle: 10
connection-timeout: 60000
max-lifetime: 3600000
# 生产环境 SQL 监控
management:
endpoints:
web:
exposure:
include: health,info,metrics,datasource
5. 数据库连接信息汇总
| 环境 | 主机 | 端口 | 数据库 | 用户名 | 密码 |
|---|---|---|---|---|---|
| 本地开发 | localhost | 3306 | saas | saas | P89cZHS5d7dFyc9R |
| 生产环境 | 120.79.247.228 | 3316 | saas | saas | P89cZHS5d7dFyc9R |
6. 必需的依赖项
确保 pom.xml 或 build.gradle 包含以下依赖:
<!-- MySQL 连接器 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<!-- HikariCP 连接池 -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.0.1</version>
</dependency>
<!-- 动态数据源 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.6.1</version>
</dependency>
7. 测试数据库连接
# 测试本地数据库连接
mysql -h localhost -P 3306 -u saas -pP89cZHS5d7dFyc9R saas
# 测试生产数据库连接
mysql -h 120.79.247.228 -P 3316 -u saas -pP89cZHS5d7dFyc9R saas
结论
当前配置文件缺少完整的数据库配置,需要补充:
- 数据源连接信息(URL、用户名、密码)
- 连接池配置(HikariCP 参数)
- 多数据源配置(如需多租户支持)
- JPA/Hibernate 配置(数据库方言、DDL 策略等)
建议根据环境(开发/测试/生产)分别配置不同的数据库连接参数。