diff --git a/sanguo_portfolio/providers/local_unified_provider.py b/sanguo_portfolio/providers/local_unified_provider.py index 5111fda..fa271bf 100644 --- a/sanguo_portfolio/providers/local_unified_provider.py +++ b/sanguo_portfolio/providers/local_unified_provider.py @@ -669,9 +669,11 @@ class LocalUnifiedProvider(DataProvider): # type: ignore[misc] filters.filter_st_stock / filter_new_stock 逐只调 get_security_info, 每只 2 条 SQL(dbbardata min/max + constituent_unified name); 03 每日 10 行业×几百只、02/01 - 调仓千次 → 万次查询。本方法一次查全: - - dbbardata: ``symbol IN (...) GROUP BY symbol, exchange`` 拿 min/max(走索引) - - constituent_unified: ``code IN (...)`` 拿 code_name + 调仓千次 → 万次查询。本方法: + - dbbardata: 逐对双 seek(ORDER BY ±datetime LIMIT 1, 见 _minmax_seek_sql)拿 + min/max——IN+GROUP BY 形态在无统计信息库会被选去单列 interval 索引整扫 + (2026-08-24 生产实锤 30 只冷 101s); 双 seek 每股恰 2 次寻位(实测 0.004s/30 只) + - constituent_unified: ``code IN (...)`` 拿 code_name(批量不变) 返回 {jq_code: {code, display_name, name, start_date, end_date, type}}, 与逐只逐字一致。 """ if not securities: