1

我有一个旧的MySQL 4.1数据库,其中有一个数百万行的表和一个连接到这个数据库的旧Java应用程序,并且经常通过此表返回几千行一个简单的SQL查询(即SELECT * FROM people WHERE first_name = 'Bob'。我认为Java应用程序使用客户端准备好的语句,但正在考虑将其切换到服务器,并在示例中提到first_name的值将根据用户输入的内容而有所不同)。MySQL准备好的语句与存储过程性能

我想加快选择查询的性能,并想知道是否应该切换到Prepared Statements或Stored Procedures。有什么更快/更少的资源密集(或如果两者的组合更好)的一般经验法则

回答

2

你确实有一个first_name的索引,对吗?这将比在预备语句和存储过程之间进行选择更快地提高查询速度。

+0

嗨,对不起,我应该提到它是索引。 我还没有试图提高数百万行(和MySQL有关)的表的性能,所以我不太确定从哪里开始查找/测试。 如果一张表有5m行会索引该表的帮助中的一列,或者它有问题/性能问题试图索引该行数(MySQL数据库所在的硬件不是最新的)? – amardilo 2009-10-05 11:10:37

0

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

(我的猜测是不会有太大的差别,虽然...)

0

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

感谢您的帮助。