包含"list"条目的 SQL 表与每个条目都有一行的 SQL 表

  • 本文关键字:SQL 一行 list 包含 mysql sqlite
  • 更新时间 :
  • 英文 :


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

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 行,其中每个"列表"元素平均有 8 个条目。我标记了SqliteMySQL,因为我对具有MySQLSqlite的数据库都有类似的问题。

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

最肯定的。因为 LIKE '%something%' 类型查询不能使用索引。所以你抬头会很慢。如果这还不够,你正在使用几乎一个RDBMS反模式。更多详细信息在这里:在数据库列中存储分隔列表真的那么糟糕吗?

将"CSV"列分解为单独的列后,可以通过规范化数据库来进一步

最新更新