【问题标题】:Compare Mysql Procedure and SQL Server Procedure Performance比较 Mysql 过程和 SQL Server 过程的性能
【发布时间】:2017-05-12 11:01:38
【问题描述】:

是否有人比较了 mysql 和 MSSQL 的类似中等复杂性存储过程的性能。我们有几个迁移到 Mysql 的大型 proc。与 mssql 计数器部件相比,这些运行速度相当慢。 可能有很多原因

  1. 硬件很差。 (内存、磁盘、SSD)
  2. Mysql 服务器配置不正确。
  3. Mysql Proc 执行和优化真的很慢。

MSsql 数据库 proc 速度快 1 倍或 2-3 倍。例如,一个 1000 行的 proc 在 MSSql 中需要 2 秒,在 mysql 中需要 10 秒。 你能帮我解释一下为什么吗?我们已经对proc源代码进行了1对1的转换。

谢谢

【问题讨论】:

  • 首先,确认是 SP 让它变慢了,而不是查询、索引等。CURSORs 是一个很大的嫌疑人。交易也是如此。而且,谁做的翻译——自动化的东西,或者是 MySQL 的新手,或者是 MySQL 的专家,但谁可能不了解 Mssql 的精妙之处?
  • “1 对 1 转换”在尝试精确复制 TOP、SEQUENCE、ROW_NUMBER 等时可能尤其糟糕。通过了解 intent 代码,然后实现 等效 功能。
  • @RickJames 这就是过去 3 个月所做的事情。但现在我正在调整 mysql 配置文件。让我们看看性能如何。谢谢:)

标签: mysql sql-server performance stored-procedures benchmarking


【解决方案1】:

存储过程会给您带来小的性能提升,但它们主要用于执行简单查询难以或不可能完成的任务。存储过程非常适合为许多不同类型的客户端简化对数据的访问。数据库管理员喜欢它们,因为他们控制数据库的使用方式,而不是将这些细节留给开发人员。

寻找索引和适当的表设计以获得更好的性能。

【讨论】:

  • MSsql 数据库 proc 速度快 2-3 倍。例如,一个 1000 行的 proc 在 MSSql 中需要 2 秒,在 mysql 中需要 10 秒。你能帮我解释一下为什么吗?我们已经对proc源代码进行了1对1的转换。
猜你喜欢
  • 2014-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 2010-12-04
  • 1970-01-01
相关资源
最近更新 更多