首页 >数据库 >mysql教程 >我应该将列表存储在单个 SQL 列中还是规范化数据以加快查询速度?

我应该将列表存储在单个 SQL 列中还是规范化数据以加快查询速度?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-17 10:31:26378浏览

Should I Store Lists in a Single SQL Column or Normalize My Data for Faster Queries?

管理 SQL 表中的“列表”条目:查询与规范化数据

使用 SQL 表时,通常将数据存储在带有“列表”条目的单行或每个条目的单独行。此问题检查哪种方法在特定用例的查询时间方面更有效。

使用“列表”条目的当前方法

提问者有一个现有的 SQLite表的行类似于:

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

其中查询使用以下方式搜索“value”和“%b%”的配对LIKE 运算符。

规范化数据的建议方法

为了提高查询效率,发布者建议创建一个新表,其中每行代表一个排列:

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

查询将使用“=”运算符来搜索“值”并"b."

标准化的好处

这个问题的答案强烈建议使用标准化的表结构。这是因为 LIKE '%something%' 查询无法利用索引,导致查找时间变慢。此外,在 RDBMS 中使用“列表”列违背了最佳实践。

标准化的好处包括:

  • 使用索引更快的查询
  • 消除“CSV”列反模式
  • 提高数据完整性和灵活性

通过标准化数据,您可以通过删除重复条目并创建表之间的关系来进一步提高性能,从而允许更复杂和高效的查询。

以上是我应该将列表存储在单个 SQL 列中还是规范化数据以加快查询速度?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn