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

mysql连接:每当第二次使用的时候,都会重新打开一个新的进程。

mysqli连接:一直都只使用同一个进程。

好处:这样就可以很大程度的减轻服务器端压力。

当然,如果mysql也需要永久连接的话,就可以使用mysql_pconnect()这个函数

mysqli的面向过程的使用:

$conn = mysqli_connect(‘localhost’, ‘root’, ’123′, ‘db_test’) or (‘error’);

$sql = “select * from db_table”;

$query = mysqli_query($conn,$sql);

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

mysql与mysqli的区别的更多相关文章

  1. PHP数据库连接mysql与mysqli的区别与用法

    一.mysql与mysqli的概念相关: 1.mysql与mysqli都是php方面的函数集,与mysql数据库关联不大. 2.在php5版本之前,一般是用php的mysql函数去驱动mysql数据库 ...

  2. mysql和mysqli的区别

    看书.看视频的时候一直没有搞懂mysqli和mysql到底有什么区别.于是今晚“谷歌”一番,整理一下.需要的朋友可以参考下.   一: PHP-MySQL 是 PHP 操作 MySQL 数据库最原始的 ...

  3. Mysql与Mysqli的区别及特点

    1)PHP-MySQL 是 PHP 操作 MySQL 资料库最原始的 Extension ,PHP-MySQLi 的 i 代表 Improvement ,提更了相对进阶的功能,就 Extension ...

  4. 关于phpcms中mysql和mysqli的区别

    用phpcms开发一个考试成绩查询的小模块,用电脑上以前下载的phpcms版本为框架开发,一切顺利.想着下载一个最新版本,以后也免了升级的麻烦.于是,下载好,然后把模块目录.model数据库连接文件. ...

  5. php中mysql与mysqli的区别

    两个函数都是用来处理DB 的.首先, mysqli 连接是永久连接,而mysql是非永久连接. mysql连接每当第二次使用的时候,都会重新打开一个新的进程,而mysqli则只使用同一个进程,这样可以 ...

  6. mysql 与 mysqli的区别

    mysqli.dll是PHP对mysql新特性的一个扩展支持.在PHP5中可以在php.ini中加载mysql后面的i,指improved, interface, ingenious, incompa ...

  7. mysql与mysqli的一些区别和方法

    一.mysql与mysqli的概念相关: 1.mysql与mysqli都是php方面的函数集,与mysql数据库关联不大. 2.在php5版本之前,一般是用php的mysql函数去驱动mysql数据库 ...

  8. mysql和mysqli使用笔记

    总体来说还算兼容得还行,很多函数直接加个i 即可,比如mysql_connect -> mysqli_connect. 有些细小的区别,mysqli 更严格,当变量有与字段重名时,改变变量名才可 ...

  9. PHP中MySQL、MySQLi和PDO的用法和区别

    PHP的MySQL扩展(优缺点) 设计开发允许PHP应用与MySQL数据库交互的早期扩展.mysql扩展提供了一个面向过程 的接口: 并且是针对MySQL4.1.3或更早版本设计的.因此,这个扩展虽然 ...

随机推荐

  1. 转载:如何搭建turn server 在centos7上。

    https://www.cnblogs.com/idignew/p/7440048.html

  2. Learning-Python【24】:面向对象之组合

    组合的概念 一个类的对象具备某一个属性,该属性的值是来自于另外一个类的对象,称之为组合,组合也是用来解决类与类之间代码冗余的问题 组合的使用 在继承中,举了一个属性查找顺序方式一的例子,最终的实现成果 ...

  3. SAP SD-销售模式-寄售(客户寄售)

    SAP SD-销售模式-寄售(客户寄售) http://blog.sina.com.cn/s/blog_a440b7ee01014kgq.html  http://www.doc88.com/p-23 ...

  4. 浅谈String中的==和对象中引用对象类型的==

    @Test public void test02() { StringBuffer sb = new StringBuffer(); sb.append('a'); sb.append(11); Sy ...

  5. Angular 学习笔记 (久久没有写 angular 常会忘记的小细节)

    由于经常跑去写后端, 而且一些就几个月...很多 ng 的东西就忘掉了. 写在这里方便复习呗. 1. async pipe 没有 resolve 前返回的值是 null 2 view componen ...

  6. babel-node + Express NodeJS项目搭建指南

    1.搭建Node.js环境 从官网下载安装 2.搭建Express环境 express 是 node.js的短精简的Web框架,官网:http://www.expressjs.com.cn/ 安装: ...

  7. git创建分支提交到远程分支步骤

    git创建分支提交到远程分支步骤 step1,在本地新建分支() git branch newbranch step2:把本地分支push到远程 git push origin newbranch s ...

  8. C# 自定义配置文件

    配置文件有两种设置方式,第一种是直接在网站根目录下的web.config中设置:第二种方式是自定义配置文件,在web.config中指定其他配置文件的路径. 第一种:除了在常用的appSettings ...

  9. asp.net ajax控件选项卡控件的选项卡的动态显示与隐藏问题

    if (dq_gly.Yhm != "admin") { this.TabContainer1.Tabs[0].Visible = false; this.TabContainer ...

  10. Spring Boot + Jpa + Thymeleaf 增删改查示例

    快速上手 配置文件 pom 包配置 pom 包里面添加 Jpa 和 Thymeleaf 的相关包引用 <dependency> <groupId>org.springframe ...