gpt4 book ai didi

php - SQL JOIN vs LIKE(数据存储在行中而不是另一个表中)

转载 作者:行者123 更新时间:2023-12-01 00:10:22 25 4
gpt4 key购买 nike

我做了一些研究,但未能找到明确的答案。

在性能方面更好。

注意:只有 10 个可能的标签,最大长度为 160 个字符(如果全部选择)。


ONE table 包含 3 列:id、stuff、tags ...其中标签列将是一个 varchar

并像这样查询:SELECT * FROM table WHERE tags LIKE %tagname%

两个表:

  • tableA columns = id, stuff

  • tableB columns = id, tag

然后像这样查询:SELECT * FROM tableA A INNER JOIN tableB B ON A.id = B.id WHERE B.tag = 'tagname'


插图——

tableA 中的行看起来像:123 |一些数据

tableB 中的行看起来像:123 |标记名

我只是想问如果没有很多标签,就性能而言,将标签存储在一行中还是在单独的表中更好。

最佳答案

What is better, in terms of performance.

Donald Knuth 曾说过“过早的优化是万恶之源。”据了解,据了解,他是在表达人们通常不应该为 构建东西性能,而不是正确性,然后才进行优化以使应用程序符合性能要求。

您的性能要求是什么?有些人可能希望最小化内存使用;其他人可能希望最小化 CPU 时间;其他人仍然可能通过“性能”来表示完全不同的东西。

即使假设您的意思是“哪个操作最快”,答案通常取决于各种因素,包括磁盘技术、存储引擎、索引设计、表大小...

那么,你应该怎么做呢? 正常化直到疼痛为止;去规范化直到它起作用。

您的第一种方法违反了 1NF .不要这样做,除非你有一些压倒一切的理由(你几乎不会这样做)。

关于php - SQL JOIN vs LIKE(数据存储在行中而不是另一个表中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22938989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com