博客搬家了,欢迎你们关注,https://bobjin.com
mysql链接:每当第二次使用的时候,都会从新打开一个新的进程。php
mysqli链接:一直都只使用同一个进程。mysql
好处:这样就能够很大程度的减轻服务器端压力。sql
固然,若是mysql也须要永久链接的话,就可使用mysql_pconnect()这个函数数据库
mysqli的面向过程的使用:apache
$conn = mysqli_connect(‘localhost’, ‘root’, ’123′, ‘db_test’) or (‘error’);编程
$sql = “select * from db_table”;服务器
$query = mysqli_query($conn,$sql);tcp
while($row = mysqli_fetch_array($query)){函数
echo $row['title'];性能
}
mysqli的面向对象的使用:
$conn = mysqli(‘localhost’, ‘root’, ’123′, ‘db_test’);
$sql = “select * from db_table”;
$query = $conn->query($sql);
while($row = $query->fetch_array()){
echo $row['title'];
}
mysql_pconnect打开的链接不会关闭(即便调用mysql_close也不会关闭,由于对其无效),
相似于链接缓冲池,若是下次有来自于同一个机器的同一个用户名
对同一个数据库的链接,PHP会自动使用上次已经创建的链接,而不须要再从新创建一个。
好处:是省去了每次与数据库创建链接的开销,
坏处:是须要浪费一些内存,占用一些链接,
因此若是用户访问量大的时候会出现错误,要把mysql的max_connections参数改大一点, 或者使用mysql_connect()就解决问题。
简单的来讲MySQL_pconnect是用来在php与MySQL间创建一条持续链接,
通常php的执行模式是脚本开始执行时初始化全部资源, 脚本运行结束后释放全部资源.
而MySQL_pconnect的方式则不这样, MySQL_connect每次都是从新经过tcp 等
跟sql服务器创建关系, 每次链接都是要消耗很多服务器资源的.
使用pconnect时, 有请求链接MySQL时, php会检查是否以前有条相同的链接(以相同的用户名密码链接到同一个MySQL服务器)已经创建,
若是有的话就直接使用这条链接, 值得注意的是这个相同的链接的概念是对进程来讲的,
不一样的进程链接 MySQL_pconnect创建会创建起多条链接.
connect与pconnect不会带来功能的差别, 只有性能上的差异.
通常php有俩种运行模式, 一是做为cgi运行, 二是做为apache的模块运行.
做为cgi的时候connect跟pconnect没什么不一样, 由于每次cgi进行运行结束后都会被销毁清理掉资源.
php做为apache模块方式运行时, 可使用到数据库持续链接, 但可能会存在潜在的问题,
看php手册,若是你是cgi安装方式。pconnection永远也不会生效。
长链接最大的缺点就是万一一个用户锁死,当前进程就永久锁死了。
假如你在apache里的设置是进程永不销毁的话就………………
说了,而且记录了那么多,
至于mysqli的优势,就很少作介绍了。
转自http://blog.csdn.net/enough_br/article/details/8773773
博客搬家了,欢迎你们关注,https://bobjin.com