You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

超1亿条数据场景:单字段复杂LIKE与多字段等值查询孰快?

1亿条9位字符串场景下,两种查询方案的性能对比

结论:选项2的查询速度会远快于选项1,尤其是在创建合适索引的前提下。

两种方案的性能分析

选项1:LIKE模糊查询

使用SELECT * from codes WHERE code LIKE "_A__9_2__"的核心问题:

  • 这种带前置通配符的模糊匹配,无法利用code字段的普通B-tree索引,数据库只能执行全表扫描。1亿条数据的全表扫描会消耗大量IO和CPU资源,每次查询耗时极长,完全无法支撑“大量查询”的核心需求。

选项2:拆分字段的等值查询

使用SELECT * from codes WHERE char_2 = "A" AND char_5 = "9" and char_7= "2"的核心优势:

  • 将9位字符串拆分为独立的单字符字段后,等值条件查询可以完美利用索引。如果创建联合索引(char_2, char_5, char_7),数据库能通过索引直接定位到符合条件的记录,避免全表扫描,查询速度会有量级的提升。即使只给单个字段建索引,多条件组合的查询效率也远高于全表扫描。

关于索引存储开销的说明

你担心的“索引增加数据量”确实存在,但实际代价远低于性能收益:

  • 单字符字段(比如CHAR(1)类型)每条记录仅占1字节,1亿条数据单个字段的存储量仅约100MB。联合索引的大小也远小于全表数据的体积。
  • 如果查询的字符位置不固定(可能涉及1-9个任意位置),无需给每个字段单独建索引,只需针对高频查询的字段组合创建联合索引即可,进一步控制存储成本。

内容的提问来源于stack exchange,提问作者realtebo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 16:24:31