2016-09-20 99 views
0

我在一个表中存储逗号分隔值的字段很少。我可以使用like或FIND_IN_SET来显示查询,以从逗号分隔值查找数据。用于逗号分隔字段值的MySQL - FIND_IN_SET

MySQL query finding values in a comma separated string

不过,我想知道有多少这两个选项FIND_IN_SET('red',colors) &喜欢用逗号给人的性能影响?他们是否使用字段索引来提供结果?

如果没有,那么我们如何优化查询和使用索引从逗号分隔的字段快速获取数据?

回答

0

查询性能的基本规则:为查询调整合适的索引。你的查询是什么?我们也看到SHOW CREATE TABLE

索引使用中的基本规则:不要隐藏函数内的索引列。这样做会导致忽略索引。这导致扫描整个表。这很慢。我指的是隐藏在FIND_IN_SET()中的color

构建模式的基本规则是“数组”需要表示为行,通常在一个单独的表中。不是在一个commerist。不在列中展开。