2.7 KiB
2.7 KiB
执行数据库索引优化说明
方法一:使用数据库管理工具(推荐)
使用 Navicat、DBeaver、phpMyAdmin 等工具
-
连接到数据库:
- 主机:
43.133.71.191 - 端口:
3308 - 用户名:
gotest - 密码:
2nZhRdMPCNZrdzsd - 数据库:
gotest
- 主机:
-
打开并执行以下文件之一:
server/database/performance_indexes_simple.sql(推荐,简单版本)server/database/performance_indexes.sql(完整版本,包含存在性检查)
方法二:使用 MySQL 命令行(如果已安装)
Windows PowerShell
# 方法 1: 使用 Get-Content 管道
Get-Content server\database\performance_indexes_simple.sql | mysql -u gotest -p2nZhRdMPCNZrdzsd -h 43.133.71.191 -P 3308 gotest
# 方法 2: 使用 source 命令(需要先登录 MySQL)
mysql -u gotest -p2nZhRdMPCNZrdzsd -h 43.133.71.191 -P 3308 gotest
# 然后在 MySQL 提示符下执行:
source server/database/performance_indexes_simple.sql
Windows CMD
mysql -u gotest -p2nZhRdMPCNZrdzsd -h 43.133.71.191 -P 3308 gotest < server\database\performance_indexes_simple.sql
Linux/Mac
mysql -u gotest -p2nZhRdMPCNZrdzsd -h 43.133.71.191 -P 3308 gotest < server/database/performance_indexes_simple.sql
方法三:在 Go 代码中执行(临时方案)
如果无法直接执行 SQL,可以在后端代码初始化时执行:
// 在 server/models/user.go 的 Init 函数中添加
func Init(version string) {
// ... 现有代码 ...
// 执行索引优化(可选,建议直接执行 SQL 文件)
// 这里可以添加执行索引创建的代码
}
验证索引是否创建成功
执行以下 SQL 查询验证索引:
-- 查看部门表索引
SHOW INDEX FROM yz_tenant_departments;
-- 查看职位表索引
SHOW INDEX FROM yz_tenant_positions;
-- 查看角色表索引
SHOW INDEX FROM yz_roles;
-- 查看员工表索引
SHOW INDEX FROM yz_employees;
注意事项
-
MySQL 版本要求:
CREATE INDEX IF NOT EXISTS需要 MySQL 8.0.12+- 如果使用较低版本,请使用
performance_indexes.sql(包含存在性检查)
-
执行时间:
- 索引创建可能需要几秒到几分钟,取决于数据量
- 创建索引期间,表会锁定(通常很快)
-
索引已存在:
- 如果索引已存在,
CREATE INDEX IF NOT EXISTS会忽略 - 如果使用
performance_indexes.sql,会显示"索引已存在"的消息
- 如果索引已存在,
-
性能影响:
- 索引创建后,查询性能会显著提升
- 插入/更新操作可能稍慢(通常可忽略)
预期效果
- 查询速度提升:50-90%(取决于数据量)
- 减少全表扫描
- 优化 WHERE 和 JOIN 查询