【问题标题】:MySQL Prepared Statements vs Stored Procedures PerformanceMySQL 准备好的语句与存储过程的性能
【发布时间】:2010-12-03 21:57:04
【问题描述】:

我有一个旧的 MySQL 4.1 数据库,其中有一个包含几百万行的表和一个旧的 Java 应用程序,它连接到这个数据库并通过一个简单的 SQL 查询频繁地从这个表中返回几千行(即 @ 987654321@。我认为 Java 应用程序使用客户端准备好的语句,但正在考虑将其切换到服务器,并且在提到的示例中,first_name 的值将根据用户输入的内容而有所不同。

我想提高选择查询的性能,并且想知道是否应该切换到准备好的语句或存储过程。是否有一个通用的经验法则来说明什么是更快/更少的资源密集型(或者如果两者结合更好)

【问题讨论】:

    标签: java mysql optimization stored-procedures prepared-statement


    【解决方案1】:

    看起来最好的方法就是进行更改并在测试环境中进行测试。

    感谢您的帮助。

    【讨论】:

      【解决方案2】:

      如果您只需要担心一个查询,您应该能够实现这两种备选方案(当然是在您的测试平台上!),看看哪一种可以为您提供最佳性能。

      (我的猜测是不会有太大区别……)

      【讨论】:

        【解决方案3】:

        您确实有 first_name 的索引,对吗?与在准备好的语句和存储过程之间进行选择相比,这将大大加快您的查询速度。

        【讨论】:

        • 嗨,对不起,我应该提到它已编入索引。我没有尝试提高具有数百万行的表(以及 MySQL)的性能,所以我不太确定从哪里开始查找/测试。如果一个表说有 5m 行将索引该表中的一列会有所帮助,或者在尝试索引该行数时会遇到问题/性能问题(MySQL 数据库所在的硬件不是最新的)?跨度>
        猜你喜欢
        • 1970-01-01
        • 2011-09-09
        • 2011-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多