代码之家  ›  专栏  ›  技术社区  ›  Thinker

行设计如何影响MySQL性能?

  •  0
  • Thinker  · 技术社区  · 15 年前
    1. 我有一个 users 表和一些论坛,在那里用户可以写。论坛上的每一项行动都使用 使用者 桌子用户可以拥有一个相当大(50KB)的配置文件。如果我在每一行中都有如此大的数据,那么将包含用户配置文件和其他不经常访问的数据的单独表放在一起不是会更快吗?

    2. 在在线RPG游戏中,每个角色都有一长串的能力,例如:手枪经验、机关枪经验、投掷手榴弹经验,以及15种以上。将它们以分号分隔的数字形式存储在字符串中更好吗?分号比整数占用更多的空间,还是我应该为每个字段设置一个功能?或者是二进制的?(我使用c++)

    2 回复  |  直到 15 年前
        1
  •  1
  •   stefanw    15 年前
    1. 如果您不需要来自 不要这样做 SELECT * SELECT a, b,...

    2. 如果需要对SQL进行查询 某些列,例如。 ORDER BY pistols_experience ,你应该 把它放在不同的列中。如果 你只需一次显示所有内容,就可以了 可以序列化不同的 通过YAML、JSON等。

        2
  •  0
  •   bobince    15 年前

    但是,如果使用MyISAM表,则可能会出现问题。在MyISAM中,只有表级锁定,因此当一个用户更新其行(例如上次访问时间)时,它会阻止所有其他用户访问表。在这种情况下,您可能会经历一些改进,将大量更新的列从相对静态但大量选择的列拆分到一个单独的表中。