MYCODEIGNITER 发表于 2013-2-5 14:02:47

Find_in_set的效率

跟大家探讨个问题,在涉及到一对多,或多对多的数据库设计的时候是采用中间表好呢,
还是直接用set字段存储,然后用Find_in_set函数查询呢?
哪种效率更高呢。

燃雲 发表于 2013-2-6 07:15:47

FIND_IN_SET是在字串中进行寻找,效率会如何?

索引搜索与顺序搜索,速度相比如何?

视乎字串长短吧!

MYCODEIGNITER 发表于 2013-2-6 19:24:39

开发中期,发现了这个问题,之前,一对多的关系,都是直接存在一个字段里,然后用FIND_IN_SET函数。
现在,有人说这个函数的效率不高。
所以想改下数据库结构。采用中间表的方法。。

燃雲 发表于 2013-2-7 18:17:42

FIND_IN_SET不一定会慢,速度视乎字串长短。

索引搜索一般有额外开销,若平均长度不是很长,FIND_IN_SET也许会更快。


要注意的倒是FIND_IN_SET的第一个参数不可有“,”,否则后果难料。

jnlb438 发表于 2013-7-10 16:42:43

1.如果你的网页功能不是太复杂,一般一对多就行了,如果复杂点,如:一篇文章可能有多个标签,最好做个中间表,不然........呵呵!
2.只要字串不是太长,FIND_IN_SET的效率很高,这点不必太担心,至少比like高得多。
页: [1]
查看完整版本: Find_in_set的效率