MYSQL中统计查询结果总行数的便捷方法【转载】
转自:http://ginew.blog.163.com/
今天阅读 wordpress代码时,发现一个MYSQL的关键词 SQL_CALC_FOUND_ROWS 查看手册后发现此关键词的作用是在查询时统计满足过滤条件后的结果的总数(不受 Limit 的限制)
例如: SELECT SQL_CALC_FOUND_ROWS tid from cdb_threads WHERE fid=14 LIMIT 1,10;
假设满足条件的有1000条,这里返回10条。立即使用 SELECT found_rows() AS rowcount; 则返回的 rowcount 为1000;
这样节省了SELECT count(*) AS rowcount的重复查询,可以节省比较可观的时间
===============================
以下是该放在在游味中的应用:
function mail_list_sent($uid, $start)
{
// 注意SQL_CALC_FOUND_ROWS uid之间没有逗号
$query = "SELECT SQL_CALC_FOUND_ROWS uid, real_name, current_city, msg_uid, sender_flag, msg_title, msg_content from ".TT_DBTABLEPRE."mailbox as mb1, ".TT_DBTABLEPRE."user as usr1 WHERE mb1.sender_id=usr1.uid AND mb1.sender_id=$uid AND sender_flag > 0 LIMIT $start, ".TT_PAGESIZE;
$mails = $this->db->fetch_all($query);
//查询SELECT中满足条件的行数,与LIMIT子句无关
$max_count = $this->db->fetch_first("SELECT found_rows() AS rowcount");
$tmp['state_code'] = 200;
$tmp['info'] = "OK";
$tmp['list'] = $mails;
$data = json_encode($tmp);
return $data;
}
感谢作者分享!
相关文档:
1.优化你的MySQL查询缓存
在MySQL服务器上进行查询,可以启用高速查询缓存。让数据库引擎在后台悄悄的处理是提高性能的最有效方法之一。当同一个查询被执行多次时,如果结果是从缓存中提取,那是相当快的。
但主要的问题是,它是那么容易被隐藏起来以至于我们大多数程序员会忽略它。在有些处理任务中,我们实际上是可以阻 ......
1、修改MySql数据库的my.ini配置文件、
# CLIENT SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by MySQL client applications.
# Note that only client applications shipped by MySQL are guaranteed
# to read this section. If yo ......
看到不少用户反映转换完以后是乱码的情况,出现这种现象的主要原因是这类用户使用的都是mysql4.1以上的版本.下面作一个说明,希望出现这个问题的朋友都能耐心的把这个文档看完!!!
MySQL 4.1开始,对多语言的支持有了很大变化 (这导致了问题的出现)。尽管大部分的地方 (包括个人使用和主机提供商),MySQL 3、4.0 仍然占主导地 ......
由于前段时间要用powerdesigner设计数据库,可数据库设计好后好导入MysQL时需要ODBC连接,而MysQL5.0以上的均要修改密码(我在网上查过),按他们的意思修改了root密码,结果是直接进不了MysQL了,我那个郁闷,在网上查找资料,也按他们的方法做了,可还是不行(本人对dos不熟)。但最终还是可以了,下面说下具体方法
1、w ......
不知道是不是驱动加载有问题,在MyEclipse中写了简单的数据库测试程序找不到驱动类,希望大虾能给予帮助,谢了。
严重: Servlet.service() for servlet jsp threw exception
java.lang.ClassNotFoundException: org.aspectj.lang.Signature
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClas ......