当前位置: 首页 > 面试题库 >

MySQL数据库设计中的常见做法是在其中包含数百万个表和数百万行吗?

戚森
2023-03-14
问题内容

我正在为一个即将到来的Web应用程序进行数据库设计,我想知道是否有人在他们当前的Web应用程序中大量使用mysql,这种设计对于一个可以说80,000个用户的Web应用程序是否有效。

1个DB

在DB中,每个用户的功能都有数百万个表,并且在每个表中可能有数百万行。

尽管此设计非常动态并且可以很好地扩展,但我想知道两件事。

  1. 这是当今Web应用程序中的常见设计吗?
  2. 如果查询数百万行,这在时间上将如何执行。
  3. 如果数据库包含数百万个表,该数据库如何执行?(再次,在时间上明智,这甚至有可能吗?)
  4. 如果它在上述条件下表现良好,那么如果所有80,000个用户每天访问数据库20-30次,每天访问10 -15分钟,那么它将如何在繁重的负载下运行?
  5. 一般来说,这将需要多少服务器空间(重申,数百万个表,每个表可能包含数百万行,其中10-15列填充文本)

任何帮助表示赞赏。


问题答案:

1-绝对不是。您询问的几乎每个人都会告诉您数百万张桌子,这是一个糟糕的主意。

2-数百万的ROWS很常见,所以很好。

3-可能非常糟糕, 特别是如果查询是由认为拥有数百万张表的人编写的 ,则 尤其如此 。这告诉我这是一个不太了解数据库的人。

4-参见#3

5-不可能说。额外的表会带来很多额外的开销,因为它们都需要额外的元数据。所需的空间将取决于索引以及表的宽度以及许多其他因素。

简而言之,这是一个非常非常非常糟糕的主意,您不应该这样做。



 类似资料:
  • 问题内容: 我最近发现并修复了我正在处理的站点中的错误,该错误导致表中有数百万行重复的数据行,即使没有行也将非常大(仍然有数百万行)。我可以轻松找到这些重复的行,并可以运行一个删除查询来杀死它们。问题是试图一次删除这么多行会长时间锁定表,如果可能的话,我想避免这种情况。我可以看到摆脱这些行而又不占用站点(通过锁定表)的唯一方法是: 编写一个脚本,该脚本将循环执行数千个较小的删除查询。从理论上讲,这

  • 问题内容: 我正在使用Python进行一些数据分析。我有两个表,第一个(叫它“ A”)有1000万行和10列,第二个(“ B”)有7300万行和2列。他们有1个具有共同ID的列,我想根据该列将两个表相交。特别是我想要表的内部联接。 我无法将表B作为pandas数据框加载到内存中,以在pandas上使用常规合并功能。我尝试通过读取表B上的文件的块,将每个块与A相交,并将这些交集连接起来(内部联接的输

  • 问题内容: 我需要使用JavaScript在网格中向用户呈现大量数据行(即数百万行)。 用户不应一次看到页面或仅查看有限数量的数据。 相反,应该看起来所有数据都可用。 并非一次下载所有数据,而是在用户访问时下载小块(即,通过滚动网格)。 这些行不会通过此前端进行编辑,因此可接受只读网格。 对于这种无缝分页,存在哪些用JavaScript编写的数据网格? 问题答案: 以获取有关使SlickGrid与

  • 发生的事情 由于系统中的错误,上个月的所有数据都已损坏。所以我们不得不手动删除并重新输入这些记录。基本上,我想删除在某段时间内插入的所有行。但是,我发现很难在HBase中扫描和删除数百万行。 可能的解决方案 我找到了两种批量删除的方法: 第一种是设置一个TTL,这样所有过期的记录都会被系统自动删除。但是我想保留上个月之前插入的记录,所以这个解决方案对我不起作用。 第二种选择是使用Java API编

  • 注意:我无法访问与此问题相关的源代码/数据库。这两个表位于不同的服务器上。 我在一家第三方公司工作,该公司的系统与我们自己的系统集成。他们有一个运行类似这样的查询; 它在

  • 问题内容: 有没有一种方法可以使用DecimalFormat(或其他一些标准格式化程序)来格式化数字,如下所示: 1,000,000 => 100万 1,234,567 => 1.23M 1,234,567,890 => 1234.57M 基本上是将某个数字除以100万,保留小数点后两位,并在最后打一个’M’。我曾考虑过创建NumberFormat的新子类,但它看起来比我想象的要复杂。 我正在编写