带有“列表”条目的SQL表与每个条目有一行的SQL表

我有一个Sqlite表,其中每一行的forms是:

 value, "a,b,c,d,e,f,g,h,i,j", value3, value4 

在我的查询查找值的配对, %b%使用LIKE 。 在查询时间方面更有效率,而不是有一个表,其中每一行是一个排列:

 value, a, value3, value4 ... value, j, value3, value4 

所以我的查询现在值,b这次使用=运算符。

作为一个说明,我感兴趣的用例有大约10,000行,每个“list”元素平均有8个条目。 我标记SqliteMySQL因为我有一个与MySQLSqlite的数据库类似的问题。

在我的查询查找值的配对,%b%使用LIKE。 在查询时间方面更有效率,而不是有一个表,其中每一行是一个排列:

明确地。 因为LIKE'%something%'types的查询不能使用索引 。 所以你看上去会很慢。 如果这还不够,那么你正在使用一个RDBMS反模式。 更多的细节在这里: 存储在数据库列中的分隔列表真的很糟糕?

一旦将“CSV”列分成不同的列,您可以通过规范化数据库来进一步进行处理。