nullxx
V2EX  ›  程序员

老哥们 有 3000 个字符串 怎么找出数据库中某个字段和它匹配的数据呢

By nullxx at 2023 年 2 月 21 日 · 1849 次点击

数据库中大概有 300w 条数据,现在是直接用 sql 的 in 语句查的 非常慢 大概要 10s select * from table_name where sheet_series_no in ('','','','');有没有其它好的办法呢

10 条回复
thunderw
   1
thunderw  
   2023 年 2 月 21 日
建个表,把这些字符串存进去。然后和这个表 join 一下。
aleiweb
   2
aleiweb  
   2023 年 2 月 21 日
转换成子查询或者 join
ufo5260987423
   3
ufo5260987423  
   2023 年 2 月 21 日
布隆过滤器……
Red998
   4
Red998  
   2023 年 2 月 21 日
sheet_series_no 加个合理的前缀索引 。按照你这样的需求 可以考虑 在代码方面解决 一次查询少量数据。在索引下问题不大。
mingl0280
   5
mingl0280  
   2023 年 2 月 22 日 via Android
先全 select 出来再在内存里匹配呗,内存当缓存了。
nullxx
   6
nullxx  
OP
   2023 年 2 月 22 日
@aleiweb 感谢老哥 我试一下
nullxx
   7
nullxx  
OP
   2023 年 2 月 22 日
@thunderw 感谢老哥,先存再 join 我试一下
nullxx
   8
nullxx  
OP
   2023 年 2 月 22 日
@ufo5260987423 感谢老哥 我去研究下
nullxx
   9
nullxx  
OP
   2023 年 2 月 22 日
@redorblacck886 我试一下 感谢老哥
nullxx
   10
nullxx  
OP
   2023 年 2 月 22 日
@mingl0280 也可以 占用不了多少内存,我试一下
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
© 2026 V2EX · 35ms · 3.9.8.5