diff --git a/docs/sql/2026-03-18_credit_user_add_indexes.sql b/docs/sql/2026-03-18_credit_user_add_indexes.sql new file mode 100644 index 0000000..27d66cc --- /dev/null +++ b/docs/sql/2026-03-18_credit_user_add_indexes.sql @@ -0,0 +1,34 @@ +-- credit_user 索引优化(MySQL/InnoDB) +-- +-- 背景: +-- - credit_user 列表分页默认排序:sort_number asc, create_time desc +-- - 常见过滤:tenant_id(TenantLine 自动追加)、deleted=0、company_id、user_id、create_time 范围 +-- - 统计/刷新关联数:WHERE deleted=0 AND company_id IN (...) GROUP BY company_id +-- +-- 使用前建议先查看现有索引,避免重复: +-- SHOW INDEX FROM credit_user; +-- +-- 注意: +-- - 大表加索引会消耗 IO/CPU,建议在低峰执行。 +-- - MySQL 8 可考虑:ALTER TABLE ... ALGORITHM=INPLACE, LOCK=NONE(视版本/引擎而定)。 + +-- 1) 覆盖默认分页排序 + 逻辑删除 + 租户隔离 +-- 典型:WHERE tenant_id=? AND deleted=0 ORDER BY sort_number, create_time DESC LIMIT ... +CREATE INDEX idx_credit_user_tenant_deleted_sort_create_id + ON credit_user (tenant_id, deleted, sort_number, create_time, id); + +-- 2) 企业维度查询/统计(也服务于 credit_company 记录数刷新) +-- 典型:WHERE tenant_id=? AND company_id=? AND deleted=0 ... +-- 典型:WHERE tenant_id=? AND deleted=0 AND company_id IN (...) GROUP BY company_id +CREATE INDEX idx_credit_user_tenant_company_deleted + ON credit_user (tenant_id, company_id, deleted); + +-- 3) 用户维度查询(后台常按录入人/负责人筛选) +-- 典型:WHERE tenant_id=? AND user_id=? AND deleted=0 ... +CREATE INDEX idx_credit_user_tenant_user_deleted + ON credit_user (tenant_id, user_id, deleted); + +-- 可选:如果你们经常按 type 过滤(0/1),再加这个(否则先别加,避免过多索引影响写入) +-- CREATE INDEX idx_credit_user_tenant_type_deleted +-- ON credit_user (tenant_id, type, deleted); + diff --git a/src/main/java/com/gxwebsoft/common/system/mapper/xml/UserMapper.xml b/src/main/java/com/gxwebsoft/common/system/mapper/xml/UserMapper.xml index a20d8b3..df27bef 100644 --- a/src/main/java/com/gxwebsoft/common/system/mapper/xml/UserMapper.xml +++ b/src/main/java/com/gxwebsoft/common/system/mapper/xml/UserMapper.xml @@ -259,6 +259,7 @@ LEFT JOIN gxwebsoft_core.sys_user_referee h ON a.user_id = h.user_id and h.deleted = 0 WHERE a.user_id = #{userId} AND a.deleted = 0 + LIMIT 1 diff --git a/src/main/resources/application-glt3.yml b/src/main/resources/application-glt3.yml index 4c37385..6bd8987 100644 --- a/src/main/resources/application-glt3.yml +++ b/src/main/resources/application-glt3.yml @@ -15,9 +15,9 @@ spring: # redis redis: database: 0 - host: 47.119.165.234 - port: 16379 - password: redis_WSDb88 + host: 1Panel-redis-GmNr + port: 6379 + password: redis_t74P8C # 日志配置 logging: