MySQL列统一,任何性能改进?

时间:2009-10-26 07:59:19

标签: mysql database-design

我正在为高流量的个人网站设计一个用于身份验证系统的MySQL表。每次显示用户评论,文章等时,都需要以下字段:

  • 登录
  • 用户显示
  • 用户生物(一点签名)
  • 网站帐户
  • YouTube帐户
  • Twitter帐户
  • Facebook帐户
  • Lastfm帐户

所以一切都在一个表中,以防止需要调用子表。所以我的问题是:

¿如果我将网站,Youtube,Twitter,Facebook和Lastfm列合并为一个,会有什么改进吗?

例如:

  

[网站:: something.com] [YouTube的:: youtube.com/something]

2 个答案:

答案 0 :(得分:0)

不,组合这些列不会带来任何改进。实际上,似乎你会延长整体长度(增加前缀和分隔符,因此可能会使性能恶化。

然而,其他一些技巧可能会有所帮助:

  • 减少存储在“xxxAccount”列中的值的大小,通过完全删除或用短手代码替换这些值中最常见的部分(显示的示例表明某种类型的URL,其开头很可能是重复。
  • 取决于生物的平均长度,以及其中的典型文本,找到缩小其[存储]大小的方法,通过简单替换常用词,或者可能实际压缩(ZIP等)也可能是有用的。 ),虽然这样做可能导致必须将列存储在BLOB列中,然后根据服务器实现/配置将其与表分离。

当然,独立地在数据库级别上形成任何改进,所指示的使用模型似乎提示缓存这种数据,以避免SQL的伎俩。

答案 1 :(得分:0)

嗯,我不这么认为,这样想吧..你需要一些方法来分割它们,这需要额外的处理,然后为什么不只是在整个表中有一个字段,并拥有一切? :)不要担心使用单独的列

会更好