首页 >数据库 >mysql教程 >扁平化表与 CSV 列:哪种数据库设计可提供更好的查询性能?

扁平化表与 CSV 列:哪种数据库设计可提供更好的查询性能?

Patricia Arquette
Patricia Arquette原创
2024-12-11 08:28:12548浏览

Flattened Tables vs. CSV Columns: Which Database Design Offers Better Query Performance?

数据库优化:扁平化表与 CSV 列

设计数据库时,将数据存储在带有逗号的单列中的决定- 总是会出现分隔值 (CSV) 或使用每个条目一行的扁平表格。本文深入探讨了这些方法的性能影响,重点关注涉及过滤或搜索的查询。

考虑一个包含以下形式行的 SQL 表:

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

其中查询搜索对like 值,%b% 使用 LIKE 运算符。

相比之下,扁平表会将每个排列作为单独的row:

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

允许查询对值使用 = 运算符,b.

对于此特定用例,大约有 10,000 行,每个“列表”元素平均有 8 个条目,对性能的影响是显着的。

LIKE 查询无法利用索引,导致查找速度变慢。此外,将数据存储在单个 CSV 列中是一种反模式,可能会影响数据库性能。

将 CSV 列分解为单独的列并规范化数据库将显着提高效率。通过这样做,可以利用索引,并且可以将 LIKE 运算符替换为 = 运算符,从而加快查询速度。

以上是扁平化表与 CSV 列:哪种数据库设计可提供更好的查询性能?的详细内容。更多信息请关注PHP中文网其他相关文章!

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