Find_in_set的效率
跟大家探讨个问题,在涉及到一对多,或多对多的数据库设计的时候是采用中间表好呢,还是直接用set字段存储,然后用Find_in_set函数查询呢?
哪种效率更高呢。
FIND_IN_SET是在字串中进行寻找,效率会如何?
索引搜索与顺序搜索,速度相比如何?
视乎字串长短吧!
开发中期,发现了这个问题,之前,一对多的关系,都是直接存在一个字段里,然后用FIND_IN_SET函数。
现在,有人说这个函数的效率不高。
所以想改下数据库结构。采用中间表的方法。。 FIND_IN_SET不一定会慢,速度视乎字串长短。
索引搜索一般有额外开销,若平均长度不是很长,FIND_IN_SET也许会更快。
要注意的倒是FIND_IN_SET的第一个参数不可有“,”,否则后果难料。 1.如果你的网页功能不是太复杂,一般一对多就行了,如果复杂点,如:一篇文章可能有多个标签,最好做个中间表,不然........呵呵!
2.只要字串不是太长,FIND_IN_SET的效率很高,这点不必太担心,至少比like高得多。
页:
[1]