管理 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 中使用“列表”列违背了最佳实践。
标准化的好处包括:
通过标准化数据,您可以通过删除重复条目并创建表之间的关系来进一步提高性能,从而允许更复杂和高效的查询。
以上是我应该将列表存储在单个 SQL 列中还是规范化数据以加快查询速度?的详细内容。更多信息请关注PHP中文网其他相关文章!