mysql与mysqli的区别

博客搬家了,欢迎你们关注,https://bobjin.com
mysqli链接是永久链接,而 MySQL是非永久链接。

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_connect与mysql_pconnect与mysqli_connect:

 

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里的设置是进程永不销毁的话就………………

 

说了,而且记录了那么多,

  1. 也就是说尽可能使用mysql_connect,由于运行结束后会自动中断,符合编程的风格吧。
  2. 也可使用mysql_connect和mysql_pconnect一块儿使用,就好像一个连接缓冲池同样,
  3. 也就是说创建一个有mysql_connect 和 mysql_pconnect的类。
  4. 固然,若是不考虑向下兼容的话,最好仍是使用mysqli_connect,由于mysqli自己就是永久性链接。

至于mysqli的优势,就很少作介绍了。

转自http://blog.csdn.net/enough_br/article/details/8773773

博客搬家了,欢迎你们关注,https://bobjin.com
相关文章
相关标签/搜索