【问题标题】:Is it better to save a string/array in a column rather than having multiple rows in a table ? Which has better performance将字符串/数组保存在列中而不是在表中保存多行是否更好?哪个性能更好
【发布时间】:2016-11-13 20:29:13
【问题描述】:

这是我的小样本数据表:

    orbId  orbPosition  layoutName
    1      6.7         FirstLayout
    2      7.3         FirstLayout
    3      8.4         FirstLayout
    1      5.5         SecondLayout
    2      6.8         SecondLayout

我正在使用 SELECT 查询来获取 layoutName 上带有 WHERE 子句的所有内容。如果我将多个球体保存在一行中并减少行数会更好吗?例如:

  orbId          orbPosition         layoutName
 ["1","2","3"]  ["6.7","7.3","8.4"]  FirstLayout
 ["1","2"]      ["5.5","6.8"]        SecondLayout

让我知道这两种方法的优缺点以及哪种方法更适合。

【问题讨论】:

标签: mysql database database-design


【解决方案1】:

If 您想更新/修改这些数据,您应该采用第一种方法 else if 数据是永久性的,不需要更改,不需要单独查询,那么第二种方式更好。

考虑到您有固定的布局设置并且您不需要随时修改*并且您不需要单独获取它,那么您应该采用第二种方法。

更新

为了获得更好的性能,随着行的增长,第一种方法会更好,index 事情会处理它。

【讨论】:

  • 好吧,我需要偶尔更新它,但我通过 JSON 格式的 web 服务发送一个完整的字符串来更新整个列。例如,我可以通过将后一个字符串作为“post”数据发送来将 orbPosition ["6.7","7.3","8.4"] 更改为 ["1.6","1.3","4.4"]。你还认为我应该坚持第一种方法吗?
  • 底线你能解释一下如果我需要更新/修改,为什么我应该坚持第一种方法,反之亦然?
  • 如果您这样做是为了存储目的,那么请使用这种方法,否则不建议使用这种方法。
  • 如果你想像["6.7","7.3","8.4"] ["1.6","1.3","4.4"] 这样单独更新数据到(例如)["1.8","7.3","8.4"] ["0.6","1.3","4.4"] ,意思是第一个值,你必须更新整个字符串。此外,如果您想获得第一个值,则需要获取整个字符串。
  • @scaisEdge 的第一条评论,干净的方法将是第一个。
猜你喜欢
  • 2012-02-10
  • 1970-01-01
  • 1970-01-01
  • 2019-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-18
  • 2019-05-12
相关资源
最近更新 更多