本文目录一览:
- 1、当大量用户访问数据库php怎么解决
- 2、php频繁请求需要关闭数据库吗
- 3、PHP多次访问数据库,是否有优化方案
- 4、PHP调用事务多次操作数据库时,应该怎么办
- 5、请教,多个PHP页面 访问数据库的时候的疑问?
- 6、php多次查询mysql
当大量用户访问数据库php怎么解决
sql多用户访问数据库其实就是事务并发,会引起如下问题:
1、脏读:一个事务读取到了另外一个事务没有提交的数据
事务1:更新一条数据
事务2:读取事务1更新的记录
事务1:调用commit进行提交
此时事务2读取到的数据是保存在数据库内存中的数据,称为脏读。
读到的数据为脏数据
详细解释:
脏读就是指:当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,
另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个
php频繁请求需要关闭数据库吗
需要关闭数据库的。如果是一个长连接的话,你的网站加入并发请求数很多,也就是说同时有很多人来访问你的网站,并且每个访问者都需要查询一次mysql数据库的话,会很快把你的系统资源消耗完了。短链接就没有这个问题,每次查询完就马上关闭了,这样不容易消耗过多的系统资源。但是长连接也有个好处就是,频繁查询的时候,可以节省了多次建立TCP连接的时间。
PHP多次访问数据库,是否有优化方案
我只针对你这个做优化吧。。
第一个不要用select * 这样的sql语句,你需要什么字段就写哪些字段
都需要的话,你都写出来,select * 效率很低的。。
第二个如果说你的后台中对这些数据的变动不是很频繁
然后你可以将查询结果存入memcahe中
我写一段伪代码
$mem_key="all";
$res = $memcache-get($mem_key);
//如果没有存入memcache中
if (empty($res){
//sql语句可以用left jion on关联查询
$aaa="select b.字段1,b.字段2...from btb as b left jion tb as b.id=t.id";
$bb=$mysql-_query($aaa);
while(!!$_rows=$mysql-_fetch_array_list($bb)){
//do something
$res ....
}
//结果存入memecahed中
$memcache-set($mem_key,$res,0,超时时间);
}
$res就是你获取的结果。。
你这段代码基本可以这样。。
PHP调用事务多次操作数据库时,应该怎么办
tp开启事务: M()-startTrans(); M()-commit();M()-rollback();#thinkphp3.2
请教,多个PHP页面 访问数据库的时候的疑问?
这样的。假如你有很多的php页面,在开始学习的时候呢,如果你在每个页面都要连接数据库的话,可以每个页面都写一段连接数据库的代码,然后用mysql_close()关闭,这里说一下,这个数据库的连接,其实呢,它默认情况下是在我们这个脚本页面运行结束以后就自动关闭了,有的程序员不写这个关闭的函数,但是我们约定俗成的都是要写上这个关闭函数的,如果有多个页面,那么每个页面都要写,有资源的还要写上mysql_free_result()来释放资源。
学到后面也可以写一个mysql的类来封装这些方法,到时候只需要在每个页面调用一下就可以了,关闭连接最好写上。
php多次查询mysql
##################################
/*
PHP 一次查询数据库,多次使用。
作者:QQ 46429691
搜集齐()定位于搜索服务,致力于下一代互联网发展,通过先进的搜索技术为网友提供更优秀的互联网服务,目前为中国第五大搜索引擎。旗下拥有网址、音乐、图片、视频、商机、人肉搜索等多个项目构成搜集齐矩阵并由拥有多年大型网站运营经验的(Yoo Lee)先生出任CTO。
*/
###################################
$qrystr = mysql_query("select * FROM pic_sort");
//形成新的数组,以后查询就不经过数据库了直接访问$row1
while ($row = mysql_fetch_array($qrystr)) {
$row1[]=$row;
}
//比如取从0开始的10条数据
$qrystr1="0,10";//这里这样定义
$array=explode(",",$qrystr1);
for($i=$array[0];$i$array[1]+$array[0];$i++)
{
echo $row1[$i]["name"];//name为*里的任意字段名
}