【发布时间】:2012-10-03 10:21:17
【问题描述】:
我的服务器运行缓慢,因为我试图从 MySQl 数据库中获取 200 条记录(使用 PHP)。它们是我需要显示的帖子,我知道这是我的错误,因为当我尝试获取 1 条记录时速度很快,而 200 则大大减慢了速度。
这是一个已知问题吗,获取太多条目会导致问题?
【问题讨论】:
-
我想说问题可能出在您的 SQL 查询上,而不是 DBMS 本身。没有看到查询,没什么好说的。
-
您是否考虑过 SQL 代码运行缓慢,尽管最终的行数是多少?
-
这仅取决于您获取的方式。通常可以毫无问题地获取数千条记录,即使在 PHP 中也是如此(只是不要一次将它们放入内存中)。
-
如果您将结果集呈现到 PHP 页面,这可能是您的问题所在,而不是实际的 MySQL。
-
需要注意的是,许多数据库扩展的默认行为是将整个结果缓冲在内存中。不推荐使用的
mysql_query缓冲结果,需要mysql_unbuffered_query来避免这种情况;mysqli_query默认调用mysqli_store_result并且需要显式传递MYSQLI_USE_RESULT结果模式以避免缓冲。PDO似乎默认使用无缓冲结果。