【问题标题】:MySQL - FIND_IN_SET for comma separated field valuesMySQL - FIND_IN_SET 用于逗号分隔的字段值
【发布时间】:2016-09-20 15:48:50
【问题描述】:

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

MySQL query finding values in a comma separated string

但是,我想知道FIND_IN_SET('red',colors) 和逗号两个选项对性能的影响有多大?他们是否使用字段索引来提供结果?

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

【问题讨论】:

    标签: mysql indexing query-performance find-in-set


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      • 2013-06-07
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多