小编enh*_*nic的帖子

使用多个数据库与使用单个数据库的优缺点

我在做一个需要使用 7 个数据库的新项目,认为性能、稳定性、优化更容易实现。

虽然我不同意,但我在收集使用单个数据库(将表拆分为逻辑域)的好参数时遇到了麻烦。

到目前为止,我的一个论点是数据完整性(我不能在数据库之间使用外键)。

使用单个或多个数据库的优点/缺点是什么?

[到目前为止的总结]

针对多个数据库的参数:

  • 丢失数据完整性(不能在数据库上使用外键)

  • 丢失恢复完整性

  • 获得复杂性(数据库用户/角色)

  • 小概率服务器/数据库将关闭

解决方案:

  • 使用模式来分隔域。

  • POC:使用虚拟数据来证明 7/1 db 的执行计划中的要点

sql-server-2008 database-design sql-server architecture

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

什么原因可能导致 AWS RDS 连接激增

这是我第一次在 AWS 上使用 RDS,我使用 t2.medium 实例运行 MySQL Aurora 和默认配置。CPU 使用率和 DB 连接是很正常的,直到“某事”发生,这导致 DB 连接一直达到最大值(t2.medium 为 80 个连接)。

在此处输入图片说明

我只有一个 Web 应用程序,在 EC2 实例上运行。当数据库连接数达到最大值时,EC2 实例的 CPU 使用率绝对正常(25-30%),但所有尝试连接到数据库实例的结果都是“连接过多”。

在此处输入图片说明

我当时还检查了数据库实例的 CPU 利用率 - 它没有显示高负载信号。在罢工期间,CPU 利用率下降到 20% 并始终保持该比率。

在此处输入图片说明

我不明白的事情:数据库连接已达到最大值,但为什么数据库 CPU 利用率下降了?由于这些连接中的查询计算,它不应该也处于最大值吗?

请帮助我理解,非常感谢。

(当第二次罢工发生时,我不得不将 RDS 实例的大小调整为 r4.large;我现在仍在运行它,直到我发现问题......)

mysql max-connections high-availability connections

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

如何选择受更新影响的行

执行update查询时(以下只是示例;update可以使用任何查询)例如:

update t1 
inner join t2 on t1.id=t2.id
set t1.name="foo" where t2.name="bar";
Query OK, 324 rows affected (1.82 sec)
Run Code Online (Sandbox Code Playgroud)

您如何查看哪些行受到影响(324 rows affected响应中的)?我尝试将表达式转换为 a select,例如

select * from t1 
inner join t2 on t1.id=t2.id
where t1.name="foo";
Run Code Online (Sandbox Code Playgroud)

但这也会返回 之前的name="foo"update。从概念上讲,我想做类似的事情

select * from rows_affected;
Run Code Online (Sandbox Code Playgroud)

但这当然行不通。是否有一种方法可以允许检查/选择受查询影响的行updateselect 或者是在之前执行此操作update以查看哪些行将受到影响的唯一解决方案?

mysql

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