首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我是否应该将一个较大的mysql表拆分为多个表?

我是否应该将一个较大的mysql表拆分为多个表?
EN

Stack Overflow用户
提问于 2009-12-23 23:09:38
回答 7查看 759关注 0票数 3

我有一个相当大的社交网络类型的网站,我已经工作了大约两年(高流量和100多个文件),我在过去的几年里一直在尝试调整东西,以获得最大的流量性能,我学到了很多。现在我有一个巨大的任务,我计划完全重新编码我的社交网络,所以我正在重新设计mysql DB和一切。

下面是一张由几个mysql表组成的照片,我对此有一个问题。我目前有登录表,这是在登录过程中使用的,一旦用户登录到网站,他们很少需要再次命中表,除非编辑电子邮件或密码。然后我有一个用户表,这是基本的用户设置和网站的个人资料数据。这就是我有疑问的地方,将用户表拆分为更小的表是否会有更好的性能?例如,如果您查看用户表,您将看到几个我标记为"setting_“的字段,我应该只创建一个单独的设置表吗?我也有标记为" count“的字段,它可以是评论、照片、好友、邮件消息等的总计数。那么我是否应该创建另一个表来存储事物的总计数?

我现在把它们都放在一个表上的原因是,我在想,如果我能减少mysql查询,而不是点击3个表来获取我能达到1个页面负载的信息,可能会更好。

如果这让人困惑,我很抱歉,谢谢你的建议。

alt text http://img2.pict.com/b0/57/63/2281110/0/800/dbtable.jpg

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-12-23 23:23:34

我应该只创建一个单独的设置表吗?

那么,我是否应该创建另一个表来存储所有东西的总数呢?

这个问题没有一个正确的答案,这取决于你的应用程序的表现。

您可以做的是在开发环境中测量和推断结果。

一方面,使用单独的表会节省一些空间,并且代码会更容易修改。

另一方面,您可能会因为必须连接来自不同表的信息而损失一些性能(您已经这样认为了)。

关于计数,我认为它在那里是很好的,尽管人们总是说计算这种东西更好,但我不认为在这种情况下它对你有任何伤害。

但是,要知道什么对你和你的特定应用程序更好,唯一的方法是测量、分析并找出这样做的好处。您可能只会获得2%的改进。

票数 1
EN

Stack Overflow用户

发布于 2009-12-23 23:20:38

只要不对表执行SELECT * FROM操作,拥有2个或100个字段就不会影响性能。只需对要使用的字段执行SELECT ,就可以很好地处理当前的结构。

票数 2
EN

Stack Overflow用户

发布于 2009-12-23 23:17:36

您需要比较以下各项的性能测试结果:

  1. 原封不动
  2. 将其拆分成两个表
  3. 使用不同的查询来检索登录数据和配置文件数据(如果您尚未执行此操作),其中所有数据都位于同一个表

此外,如果使用数据表明这将是有利的,您可以在配置文件数据上实现某种缓存策略。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1953329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档