首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RDS实例上缓慢的Mysql存储过程

问RDS实例上缓慢的Mysql存储过程
EN

Stack Overflow用户
提问于 2015-01-26 13:08:53
回答 2查看 1.2K关注 0票数 0

对于在Amazon实例上运行缓慢的Mysql存储过程,我有一个问题。

我目前正在使用存储过程将客户端的Mysql数据库迁移到我们自己的Mysql数据库。两个数据库都位于同一个RDS实例上。实例类为“db.m1.media”。

一个存储过程将客户端数据库中的一个表中大约2.600.000条记录复制到我们数据库中的两个表中。

当在笔记本电脑上的本地数据库副本上运行此存储过程时,需要1小时15分钟。在RDS实例上运行此存储过程时,大约需要19小时。我从同一可用性区域的EC2实例中调用存储过程。

我能让存储过程在RDS实例上运行得更快吗?

编辑27-01-2015:昨晚存储过程由于内存不足的异常而崩溃。

我现在更改了存储过程。对于原始表中的每一行,我将所有插入都封装在一个事务中。我还为一些在存储过程中做的选择查询做了一些工作,这样我就不用再做了。

我还为RDS实例提供了一个30 GB的SSD驱动器。

现在存储过程在12分钟内在我的笔记本上运行。但我估计亚马逊的RDS还需要8个小时。怎么会有这么大的差别呢?

编辑28-01-2015:程序仍在运行.估计时间现在增加到31小时15分钟。

当我监视我的RDS实例时,可释放内存的数量一直在下降。存储过程中是否可能存在内存泄漏?

EN

回答 2

Stack Overflow用户

发布于 2015-01-26 13:17:12

在过去几年里,您的普通笔记本电脑将比m1.medium实例强大得多。它为您提供了1 vCPU和1.7GB内存,在m1行上是“相当于1.2-1.2 GHz 2007 Opteron或2007 Xeon处理器的CPU容量”。

考虑迁移到一个m3实例--它们拥有更现代的处理器--并使用更多的RAM来使用更大的实例样式。

票数 0
EN

Stack Overflow用户

发布于 2021-08-18 19:29:06

如何在RDS MySQL DB中编写存储过程?

下面是一个例子:

代码语言:javascript
复制
USE `your_db_name`;
DROP procedure IF EXISTS `procedure_method_name_here`;

DELIMITER $$
USE `your_db_name`$$
CREATE PROCEDURE `procedure_method_name_here` ()
BEGIN
  // sql statement
  SELECT * 
    FROM db_name.table_name
    WHERE id = match_ids;
END$$

DELIMITER ;

运行以上命令。您的程序将为您创建。

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

https://stackoverflow.com/questions/28150695

复制
相关文章

相似问题

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