MYSQL一种常见的应用场景的效率问题

比如A表
aid,acontent
1,内容a
B表
bid,bcontent
abc,内容b
C表是A和B的关联表
我现在是这样设计的C表:
abid,ccontent
1@abc,内容c
这样好处是在SELECT的时候可以用substring_index(abid,'@',1)=aid或substring_index(abid,'@',-1)=bid来跟A表或B表做关联。同时可以让abid这个字段非重索引,以后添加修改C表的数据可以直接replaceinto
但是我发现当数据量比较多的时候效率很一般。请问有没有更好的替代方案
素胚勾勒不出你
浏览 657回答 2
2回答

胡说叔叔

abid这个字段就算做了索引,但是一旦在查询的时候在字段上做函数运算,索引是不起任何作用的。建议题主还是把abid字段拆分开吧,按照最常见的多对多关系来建表。拆分成aid和bid,可以建立联合索引。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript