转自: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中满足条件的 ......
MYSQL 8小时 断开链接问题
解决办法有两个:第一是设置autoReconnect属性设置为true;第二是设置DBCP 时将testquery等几个属性一并设置。
问题的原因是,MySQL的参数interactive_timeout,也就是交互超时时间默认为8小时。也就是如果一个链接在8小时后,还没有和服务器交互,这个连接就会被MySQL服务器断开。因为MySQL能够承受的并发连接有限,所以这个参数有助于清除那些长时间不活动的链接。
错误如下:
ERROR JDBC begin failed com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.net.SocketException MESSAGE: Software caused connection abort: socket write error STACKTRACE: java.net.SocketException: Software caused connection abort: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) at java.net.SocketOutputStream.write(SocketOutputStream.java:136) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65) at java.io.BufferedO ......
在网上看了很多关于windows2003+iis6+php+mysql 服务器配置的文章,大体上都是互相抄袭,不过一些公共的信息还是很正确的,但是针对一些特别的机器或者因为个人不同的配置总不能按照文章的内容操作成功,下面说一种较为简单的操作方法,步骤如下:
1.iis安装(略)
2.下载AppServ并安装
3.在c:\建php5文件夹,然后再php5文件夹下建php.ini文件(就是从AppServ|php5下拷贝过来)
4.修改php.ini,找到 register_globals = Off 改为 register_globals = On
找到 extension_dir = "./" 改为 extension_dir = "F:\php\ext"
找到
;extension=php_dbase.dll
;extension=php_gd2.dll (这是用来支持GD库的)
;extension=php_mbstring.dll (这不选一般用PHPMYADMIN会出红色提示,故必选)
;extension=php_mcrypt.dll
;extension=php_mssql.dll (这个是用来支持MSSQL的,可选)
;extension=php_mysql.dll (这个是用来支持MYSQL的,要支持MYSQL必选)
将这些文字前面的";"去掉,其他的你需要的也可以去掉前面的;然后关闭保存该文件。
5.设置iis,让其支持php,
1)打开控制面板→管理工具→Intern ......
在网上看了很多关于windows2003+iis6+php+mysql 服务器配置的文章,大体上都是互相抄袭,不过一些公共的信息还是很正确的,但是针对一些特别的机器或者因为个人不同的配置总不能按照文章的内容操作成功,下面说一种较为简单的操作方法,步骤如下:
1.iis安装(略)
2.下载AppServ并安装
3.在c:\建php5文件夹,然后再php5文件夹下建php.ini文件(就是从AppServ|php5下拷贝过来)
4.修改php.ini,找到 register_globals = Off 改为 register_globals = On
找到 extension_dir = "./" 改为 extension_dir = "F:\php\ext"
找到
;extension=php_dbase.dll
;extension=php_gd2.dll (这是用来支持GD库的)
;extension=php_mbstring.dll (这不选一般用PHPMYADMIN会出红色提示,故必选)
;extension=php_mcrypt.dll
;extension=php_mssql.dll (这个是用来支持MSSQL的,可选)
;extension=php_mysql.dll (这个是用来支持MYSQL的,要支持MYSQL必选)
将这些文字前面的";"去掉,其他的你需要的也可以去掉前面的;然后关闭保存该文件。
5.设置iis,让其支持php,
1)打开控制面板→管理工具→Intern ......
搞了很久。。终于发现原来是权限问题。。
2行命令搞定
grant all privileges on rogue.* to admin@localhost identified by 'admin' with grant option
grant all privileges on rogue.* to admin@'%' identified by 'admin' with grant option
经典了。。。
魔力私服网页端搞定咯~~ ......
搞了很久。。终于发现原来是权限问题。。
2行命令搞定
grant all privileges on rogue.* to admin@localhost identified by 'admin' with grant option
grant all privileges on rogue.* to admin@'%' identified by 'admin' with grant option
经典了。。。
魔力私服网页端搞定咯~~ ......
搞了很久。。终于发现原来是权限问题。。
2行命令搞定
grant all privileges on rogue.* to admin@localhost identified by 'admin' with grant option
grant all privileges on rogue.* to admin@'%' identified by 'admin' with grant option
经典了。。。
魔力私服网页端搞定咯~~ ......
# MySQL-Front 5.1 (Build 4.2)
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */;
/*!40101 SET SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES */;
/*!40103 SET SQL_NOTES='ON' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS */;
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
# Host: localhost Database: scanmaster
# ------------------------------------------------------
# Server version 5.1.46-community
#
# Source for table tabapp
#
DROP TABLE IF EXISTS `tabapp`;
CREATE TABLE `tabapp` (
`appid` int(4) NOT NULL AUTO_INCREMENT,
`appname` varchar(32) NOT NULL DEFAULT '',
`apppath` varchar(255) CHARACTER SET gbk COLLATE gbk_bin NOT NULL DEFAULT '',
`outputpath` varchar(255) CHARACTER SET gbk COLLATE gbk_bin NOT NULL DEFAULT '',
`indexed` int(4) NOT NULL DEFAULT '0',
......
# MySQL-Front 5.1 (Build 4.2)
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */;
/*!40101 SET SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES */;
/*!40103 SET SQL_NOTES='ON' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS */;
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
# Host: localhost Database: scanmaster
# ------------------------------------------------------
# Server version 5.1.46-community
#
# Source for table tabapp
#
DROP TABLE IF EXISTS `tabapp`;
CREATE TABLE `tabapp` (
`appid` int(4) NOT NULL AUTO_INCREMENT,
`appname` varchar(32) NOT NULL DEFAULT '',
`apppath` varchar(255) CHARACTER SET gbk COLLATE gbk_bin NOT NULL DEFAULT '',
`outputpath` varchar(255) CHARACTER SET gbk COLLATE gbk_bin NOT NULL DEFAULT '',
`indexed` int(4) NOT NULL DEFAULT '0',
......
1. 安装mysql的时候选择字符集utf8
2. 安装结束后修改my.ini,有两个地方要修改,
[mysql] default-character-set=gbk
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8
3.重启mysql ......