Note: The benefits of mysql_unbuffered_query() come at a cost: You cannot use mysql_num_rows() and...
but it looks like you can use SQL_CALC_ROWS on MySQL to get the total rows without the limit.
![]() | mysql_unbuffered_query说明resource mysql_unbuffered_query ( string query [, resource link_identifier] )mysql_unbuffered_query() 向 MySQL 发送一条 SQL 查询 query,但不像 mysql_query() 那样自动获取并缓存结果集。一方面,这在处理很大的结果集时会节省可观的内存。另一方面,可以在获取第一行后立即对结果集进行操作,而不用等到整个 SQL 语句都执行完毕。当使用多个数据库连接时,必须指定可选参数 link_identifier。
参见 mysql_query()。 ![]()
silvanojr at gmail dot com
13-May-2006 05:02
Note: The benefits of mysql_unbuffered_query() come at a cost: You cannot use mysql_num_rows() and...
andre dot steffens at adress-research dot de
08-Oct-2004 09:18
If you use mysql_ping() to check the connection, the resultset from mysql_unbuffered_query() will be kill.
steve_stockman at mac dot symantec dot com
02-Apr-2004 06:19
If you are going to do a large query, but are concerned about blocking access to the table during an unbuffered query, why not go through a temporary table? (Of course, this is predicated on the current user having permission to create tables.)
post at jfl dot dk
30-Nov-2003 09:57
If using optimized MyISAM tables I guess there is a big advantage with this function as it is possible to do selects and inserts on the same time as long as no rows in the table gets updated.
15-Jun-2003 01:35
The other hand should really be, that the table remains locked until all rows have been retrieved, right? This is a very important thing to mention, you could tie up the whole database with a lock.
shaner at accretivetg dot com
22-May-2003 07:45
Regarding bailing on a really large result, while doing an unbuffered query, there _is_ a way to do this: kill the thread and exit your processing loop. This, of course, requires having a separate database link. Something like below does the trick:
frappyjohn at dos2linux dot org
18-Feb-2003 02:21
Don't let the two hands confuse you, these are both advantages (they should really be on the same hand):
david at php dot net
18-May-2002 12:25
You are absolutely required to retrieve all rows in the result set (option 'a' in the first comment). If you fail to do so, PHP will do so for you, and will emit a NOTICE warning you of the fact. From the MySQL API, "Furthermore, you must retrieve all the rows even if you determine in mid-retrieval that you've found the information you were looking for. ".
chabotc at reviewboard dot com
21-Aug-2001 05:21
Stefan,
| ![]() |