对于多字段的组合搜索条件, mysql 应该怎么设置索引
資深大佬 : dajj 3
假设有一个列表界面, 有 10 个搜索条件, 每个条件对应表的某个字段,都是精确搜索。 但是表的数据有 100 万条。 这种情况下,复合索引无法设置,因为字段组合太多. 那么,有没有通用的解决方案,可以设置索引,让任何条件的搜索都能很快?
大佬有話說 (10)
假设有一个列表界面, 有 10 个搜索条件, 每个条件对应表的某个字段,都是精确搜索。 但是表的数据有 100 万条。 这种情况下,复合索引无法设置,因为字段组合太多. 那么,有没有通用的解决方案,可以设置索引,让任何条件的搜索都能很快?
比如你设置了 a_b_c_d_e 这样的索引,然后你的查询条件是 a = xxx and c=xxx and b = xxx,这样的精确查询,a_b_c_d_e 的索引也是会被使用到的。
另外我觉得还可以做字段冗余, 把十个字段的值放一个字段上, 然后走分词索引. 或者借助于 ES 做全文搜索来匹配.