2

我有一个客户端应用程序,它使用 SuSE SLES 9 上的库存库连接到 MySQL 数据库 4 服务器。但是,有时在处理来自服务器的特定重置集时,迭代抛出结果不允许我处理所有结果在数据库中。

这个问题有时会发生,主要是当服务器有几天的正常运行时间时。我怀疑重启可以解决问题。

无论如何,随着时间的推移不释放 MySQL 结果集会导致这种内存泄漏并以这种奇怪的行为显示自己必须始终释放所有结果集吗?但是,相同的表和相同的程序在另一台计算机上的行为应该如此。

由于应用程序或 mysql 客户端库中的实现问题,结果集是否会损坏?

4

2 回答 2

1

一切皆有可能,但我倾向于默认处理应用程序级别的问题。如果您使用 C/C++ 进行编码,任何闻起来可能与内存相关的问题都是堆损坏错误的主要候选者,这可能会导致结果集问题。另外,我很好奇您将此结果集保持打开多长时间 - 是否有可能在查询运行和检索时插入了您“丢失”的行结果集中的值?

最后,当您关闭数据库连接时,会自动在服务器上发布结果集,因此除非您将单个连接保持打开数天,否则这不太可能是问题,因为 MySQL 中没有错误。

于 2009-01-30T02:06:40.530 回答
0

您可能会考虑升级到 MySQL 5。
拥有最新版本通常会很好。

于 2008-11-13T13:46:58.923 回答