相关疑难解决方法(0)

为每个客户创建数据库会遇到什么问题?

我从 stackoverflow 播客中记得Fog CreekFogbugz为每个客户使用一个数据库。我认为这意味着 Fogbugz On Demand 服务器拥有数以千计的数据库。

我们刚刚开始开发一个网络应用程序,并有一个类似的问题需要解决(许多客户拥有自己的独立数据)。

使用每个客户的数据库会出现什么问题?我该如何解决它们?

我的初步想法

每个客户数据库的优势

  • 更简单的数据库架构
  • 更简单的备份 - 您可以依次备份每个客户,而不会真正影响其他客户。
  • 可以轻松导出给定的客户数据。
  • 更好的缓存性能 - 写入一个更活跃的表只会影响执行写入的单个客户。
  • 更容易跨硬件扩展。例如,当我们需要从 1 台服务器增加到 2 台服务器时,我们只需将一半的客户转移到新服务器上。

缺点

  • MySQL能应付5000个数据库吗?性能会很差吗?
  • 对架构的更改可能难以复制到所有数据库中。我们真的必须为此制定一个自动化计划,例如对模式进行版本控制,以及一个了解如何将数据库从一个版本转换为另一个版本的脚本。
  • 做我们所有客户共同的事情可能会很尴尬或不可能
  • 与上述类似,但我们想要对所有客户执行的任何分析都可能是不可能的。例如,我们应该如何跟踪所有客户的使用情况?

mysql database-design database-recommendation

55
推荐指数
4
解决办法
4万
查看次数

设计一个平台:一个数据库还是多个数据库?

我们正在构建一个包含多种服务的网络平台,每个服务都有自己的底层数据。这些服务是按照面向服务的架构原则独立构建的,但它们针对潜在的相关数据进行交易。我们正在考虑这些服务是否应该共享一个大数据库或每个都有自己的数据库。(我们计划在 Windows 2008 群集上使用 SQL Server 2008 Enterprise。)

我们已经考虑过的每种方法的一些优点包括:

单一数据库

  • 来自不同服务的相关数据可以通过外键约束绑定在一起
  • 分析提取更易于编写且执行速度更快
  • 发生灾难时,更容易将平台恢复到一致状态
  • 对于被多个服务引用的数据,一个服务缓存的数据很可能很快就会被另一个服务使用
  • 预先管理和监控更简单、更便宜

多个数据库

  • 维护工作、硬件问题、安全漏洞等不一定会影响整个平台
  • 假设每个数据库都在不同的硬件上,扩展多台机器比扩展一台大机器会产生更多的性能优势

从操作的角度来看,这个平台中的每个服务都有自己的数据库,还是都放在同一个数据库中更有利?哪些关键因素决定了这个问题的答案?

database-design deployment

31
推荐指数
1
解决办法
1万
查看次数

为什么使用 innodb_file_per_table?

有很多文章夸大了(当然恕我直言)对innodb_file_per_table. 我知道使用innodb_file_per_table,应该可以更好地控制各个表;比如分别备份每张表。然而,对更好性能的要求是有问题的。

在我的测试中,在性能没有差异innodb_file_per_table,并ibdata1为60GB的数据库。当然,这是一个普通查询的简单测试,现实生活中复杂查询的情况可能会有所不同(这就是我问这个问题的原因)。64 位 linux 搭配ext4可以有效处理大文件。

使用innodb_file_per_table,需要更多的磁盘 I/O 操作;这在复杂的JOINs 和FOREIGN KEY约束中很重要。

表空间在 single 上共享ibdata;单独表的专用表空间如何节省磁盘空间?当然,使用 为每个表释放表空间更容易ALTER,但它仍然是一个昂贵的过程(带有表锁)。

问:是否innodb_file_per_table有关于MySQL的性能更好的效果呢?如果是,为什么?

mysql innodb performance linux

30
推荐指数
4
解决办法
4万
查看次数

我们应该为每个“项目”创建一个模式吗?

这是一个数据库,用户可以在其中创建“项目”并对其进行处理。我们有一个表格project和各种其他表格,其中包含项目的不同属性(每个项目的多行,从 2-30K 行)。所有这些都包含projectID链接到project. 目前数据库是400GB。

我们正在尝试为每个项目创建一个架构,其中每个架构都将包含所有属性表。每当创建一个项目时,它都会获得一个新的模式。这意味着每个表最多包含 30K 行,这将提高select性能。我们将在查询中使用动态 SQL 来读取/插入。

我觉得这不是数据库的正确应用,但我如何向我的团队证明这是一种糟糕的方法?

schema performance sql-server

6
推荐指数
1
解决办法
1628
查看次数