首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql数据库是一个表还是多个表,哪个更快?

问mysql数据库是一个表还是多个表,哪个更快?
EN

Stack Overflow用户
提问于 2009-11-11 04:23:46
回答 4查看 1.5K关注 0票数 2

在我的网站上,你可以搜索“广告”或“分类广告”。有不同的类别。

如果有多个表,每个类别一个表,搜索速度会更快,还是不重要?

我们谈论的是大约50万个广告。

如果它不会减慢搜索速度,请解释一下,让我理解为什么不会,因为这似乎是常识,你有更多的广告,搜索速度越慢!

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-11-11 04:32:43

你的问题有点不清楚。我假设这个场景:

代码语言:javascript
复制
table: ads
id category ad_text
-- -------- ---------------------------
1  pets     sample text
2  family   sample ad

如果您对广告进行一次搜索,那么在每次搜索中搜索多个表比搜索一个表要慢。

但是,如果您打算根据“类别”将“广告”分成多个表,那么只剩下如下的表名

  • pets-ads
  • 家庭-ads pets

而且,在编程方面,您知道您正在寻找程序员广告,这样您就可以直接搜索程序员广告表,然后将它们分解出来会更快。勉强算是。

不过,将它们拆分出来有很多缺点。您需要:

  • 使用一些可爱的代码来知道要搜索哪个表。
  • 每次创建新类别时都会创建新表如果您确定类别名称错误,
  • 会重命名表

鉴于我们拥有的信息有限,我强烈建议使用一个带有类别列的表,然后继续并将其规范化到它自己的表中。在该列上添加索引。构建数据库是为了正确地处理大量的数据行,所以不用担心这一点。

票数 7
EN

Stack Overflow用户

发布于 2009-11-11 04:33:24

显然,搜索一个较小的表(一个类别)比搜索一个较大的表名义上更快。然而,较大的表可能仍然是正确的设计。创建多个相同的表只会让开发人员和管理人员的生活苦不堪言。此外,如果对数据进行分段,则某些类型的搜索会更加困难(例如,跨两个类别进行搜索)。

如果索引正确,单表方法将产生几乎与分段方法一样好的结果,同时提供适当设计的好处。

(当然,当您说“单个表”时,我假设您指的是包含广告实体的核心属性的单个表。可能还会有其他的表。)

票数 2
EN

Stack Overflow用户

发布于 2009-11-11 04:26:28

那得看情况。

如果您构建了一个包含文本的非正规化表,由于多种原因,它将变得越来越慢。索引在一定程度上是有帮助的。

如果您有一个包含多个表、主键和外键、索引等的规范化结构,那么它可以更加健壮和可伸缩。

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

https://stackoverflow.com/questions/1710936

复制
相关文章

相似问题

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