【高分求代码优化】频繁读取数据库,怎么减少数据库访问次数?【菜鸟新作求高手优化】 路过*******************************************************发布-寻找-分享免费资源请到WORKING8http://www.working8.com 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不是每次mysql都会查询的,mysql有自己的cache,短时间内频繁查询mysql会自动从cache里读出来的,不过条件比较苛刻,如每次查询的语句必须一样,区分大小写等等你看看手册就知道了 mysql_query("UPDATE ct SET counter=0 WHERE type='$type'"); //更新计数器mysql_query("DELETE FROM idx WHERE id=7 AND type='$type'");//删除第7个记录mysql_query("UPDATE idx SET id=id+1 WHERE type='$type'"); //然后剩下第0~6个记录的id分别加1======像这种情况,能不能把3条查询和起来,变成一次查询呢? 那怎么做并发控制呢?在idx表中竟然会出现id=8这种情况。。 MySQL 4.1.8 下没有出现这种问题 如果数据变化很少, 或者是只有后台才会修改数据的情况,我一般是生成XML文件, 效率高很多。 re li1229363() 我在php手册上找的关于全局变量和静态变量的例子<?php$a = 1;$b = 2;function Sum(){ $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];}Sum();echo $b;?> 这个我每次刷新输出的都是3。。怎么用#Globals变量呢?例子 12-6. 使用静态变量的例子<?phpfunction Test(){ static $a = 0; echo $a; $a++;}?> 现在,每次调用 Test() 函数都会输出 $a 的值并加一。这个倒是可以,但是对静态变量的解释却有这么一句:“静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。”首先,静态变量只能用在局部函数中!说的是值不丢失,那这个值存在服务器内存里多久呢?re seakingx(亚龙湾)idx表数据变化很频繁的,本来我是想把表idx中的数据放在cache中的,就比如前面的计数器,但是因为我不会弄,所以我就把这两个值写进数据库了感谢所有顶帖的朋友们哦^_^ DELETE FROM idx WHERE id>6 AND type='$type'这样肯定不会有id=8啦~~~ php没有你需要的那种全局变量.只有通过文件或数据库等保存跨页面的计数另, 你的这个为什么不把id设成auto_increment,insert后,delete id 最小的一个,这样insert和delete成对出现,表中必然只有6条.上面zhys9的也是一个办法. re zhys9(OoP.plorer)在暂时还不知道为什么会出现id=8这种情况下,这个方法用来过渡还是不错滴re helloyou0(你好!) id不唯一的呢,表中用type来区别的,也就是说id和type一起才能确定一条记录 用这个缓存类fanCachehttp://www.cq100.cn/read.php?4然后不经常更新且不需要访问权限的生成HTML!谢谢,给分吧 if()判断变量是否为空的两种方法,哪种更好?有区别吗? 很简单的,从AA省BB市取省和市 ZEND5.5 支持 action 属性吗? css样式改了,没反应,高手请来下,在线等!!! faisun(暖阳) :你的那个代码着色器我觉得很好,能否提供思路,还是要卖钱? mysql查询问题 linux(MAC,Ubuntu)PHP安装SOAP扩展 请问使用全局变量时那个[]里面需要加单引号吗? 谁知道像淘宝一样很多页都是静态.html文件,怎么做?给分300 一个关于session的问题。 (急急急)使用phpmailer发邮件后接收到的邮件内容不能换行 怎么知道访问者的IP,,,
你看看手册就知道了
mysql_query("DELETE FROM idx WHERE id=7 AND type='$type'");//删除第7个记录
mysql_query("UPDATE idx SET id=id+1 WHERE type='$type'"); //然后剩下第0~6个记录的id分别加1
======
像这种情况,能不能把3条查询和起来,变成一次查询呢?
在idx表中竟然会出现id=8这种情况。。
我一般是生成XML文件, 效率高很多。
我在php手册上找的关于全局变量和静态变量的例子
<?php
$a = 1;
$b = 2;function Sum()
{
$GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}Sum();
echo $b;
?>
这个我每次刷新输出的都是3。。怎么用#Globals变量呢?例子 12-6. 使用静态变量的例子<?php
function Test()
{
static $a = 0;
echo $a;
$a++;
}
?>
现在,每次调用 Test() 函数都会输出 $a 的值并加一。
这个倒是可以,但是对静态变量的解释却有这么一句:“静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。”首先,静态变量只能用在局部函数中!说的是值不丢失,那这个值存在服务器内存里多久呢?
re seakingx(亚龙湾)
idx表数据变化很频繁的,本来我是想把表idx中的数据放在cache中的,就比如前面的计数器,但是因为我不会弄,所以我就把这两个值写进数据库了感谢所有顶帖的朋友们哦^_^
这样肯定不会有id=8啦~~~
只有通过文件或数据库等保存跨页面的计数另, 你的这个
为什么不把id设成auto_increment,
insert后,
delete id 最小的一个,
这样insert和delete成对出现,表中必然只有6条.
上面zhys9的也是一个办法.
在暂时还不知道为什么会出现id=8这种情况下,这个方法用来过渡还是不错滴re helloyou0(你好!)
id不唯一的呢,表中用type来区别的,也就是说id和type一起才能确定一条记录
fanCache
http://www.cq100.cn/read.php?4
然后不经常更新且不需要访问权限的生成HTML!
谢谢,给分吧