2016-09-20 97 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。不在列中展開。