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

MySQL中查询企业与地址时,应使用联合索引还是FULLTEXT索引?

选择联合索引而非FULLTEXT索引

核心判断依据

你的所有查询都是精确等值匹配,这是联合索引的典型适用场景。FULLTEXT索引专为全文检索(比如含关键词的模糊搜索)设计,对你的场景毫无优化作用,反而会额外增加索引维护成本。

具体索引创建建议

Enterprises表

针对查询语句WHERE Type = 1 AND FullName = '...',创建以下联合索引:

CREATE INDEX idx_enterprise_type_fullname ON Enterprises(Type, FullName);

建议把过滤性更强的数值型字段Type放在索引前列,能更快缩小查询范围,提升匹配效率。

Addresses表

针对查询语句WHERE address1 = '...' AND address2 = '...' AND address3 = '...' AND postcode = '...' AND city = '...',创建包含所有查询字段的联合索引:

CREATE INDEX idx_address_full ON Addresses(Address1, Address2, Address3, Postcode, City);

如果Address2或Address3这类字段经常为空,可以调整索引顺序,将非空且过滤性更强的字段(比如Postcode、City)放在前面,进一步优化查询速度。

为什么FULLTEXT索引不适合?

FULLTEXT索引是用来处理MATCH(col) AGAINST('关键词')这类全文搜索场景的,它无法优化精确的等值匹配查询。如果强行使用FULLTEXT索引,数据库依然会执行全表扫描,完全达不到你想要的响应时间优化效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 12:08:08