MySQL vs. MySQLi:改进对你合适吗?
MySQL是非常流行的开源关系数据库管理系统,它被流行的高容量网站使用,如Wikipedia,谷歌,Facebook, YouTube和Twitter以及许多其他全球各地。这个MySQL的原始版本是低成本的,易于使用,安装和集成,在许多不同的平台上是灵活的,是非常可靠的,可扩展的,性能很好。结果,在软件存在的整个过程中,有超过1亿份软件被下载或分发。
后续到mysql,MySQLi的特殊特性是用来交互和利用的几个选项之一吗MySQL。就像名字后面的“i”所暗示的,它是对原始MySQL的一个增强和改进的PHP接口。该系统的一些改进包括更多的接口功能、对准备语句和多语句的支持以及增强的调试支持。MySQLi不是MySQL的替代品,而是一种与它交互的方法。
MySQLi有什么不同?
如前所述,MySQLi是与MySQL数据库服务器交互的三种方式之一。另外两个是MySQL扩展,它处理MySQL的旧版本,以及更简单、更易移植的版本PHP数据对象(PDO)。像扩展一样,新的MySQLI旨在更好,更完全与MySQL互动,并具有新的和改进的一个与MySQL版本4.1.3以及更新的版本,并且可以在PHP版本5及更高版本中找到。以下是原始MySQL和改进的MySQLI之间的一些差异。
- 双面向对象的(OO)和程序界面- 以前版本的MySQL中不存在这种多功能性。程序界面可以通过从旧MySQL系统迁移的用户迁移,其中功能名称仅在前缀中不同(只需添加“i)。面向对象的界面显示其目的分组的函数,使得更容易开始。两个接口与用户偏好类似于两者之间的决定因子。
- 支持准备的陈述 -将MySQL / PHP与其他平台带入其他平台,MySQLI能够将查询传递给MySQL的任何数据。绑定参数后,执行查询。通过防止SQL注入攻击,此过程会导致开发人员的性能提高,便利性和更多的安全性。
- 处理多个陈述的能力 -在一个语句字符串中将多个语句串联在一起的能力减少了客户端 - 服务器循环。构成字符串的单个语句由分号分隔,然后获取每个执行语句的结果。
- 嵌入式服务器支持-MySQLi提供了连接和操作嵌入式MySQL服务器库的方法。
- 增强的调试功能 -用户可以在系统中输入调试查询,从而实现更高效的开发过程。betwayapp下载安装MySQLi调试查询的示例如下:mysqli_debug(“d:师:啊,/ tmp / client.trace”)
- 支持使用交易的能力 -使用事务可以输入一组查询,这些查询执行但不将其效果保存在数据库中。如果您有多个相互依赖的插入,如果一个插入失败,其他插入可以回滚,并且没有插入任何数据,那么这是有用的。
改革的利弊
虽然MySQLI在与MySQL接口方面的优势时,其他选项有时有时有一条腿,可能对用户更适合用户,具体取决于个人偏好和方便。像大多数事情一样,最重要的选项取决于您询问的谁以及您需要MySQLI或竞争对手的情况。
凡好
- MySQLI的界面类似于旧的MySQL接口。使用面向对象和程序格式的这种多功能性使旧系统的用户更容易改进改进的系统,并促进用于系统完全新的人的用途。使用旧系统,用户将进入一个如下所示的函数:mysql_connect (),使用新的系统,这个旧的代码可以通过简单地改变功能来更新:mysqli_connect()。
- MySQLI具有良好的支持和维护,使新系统的过渡和使用新系统安全和安全。
- 用户有能力在最新版本的MySQL服务器中使用新功能。这是Mysqli的最大优势之一。其他平台无法充分利用MySQL的最新功能。
- 使用MySQLi的安装过程不仅简单,而且在Windows或Linux安装PHP5 MySQL包时是自动的。
- MySQLi比它的竞争对手(稍微)快。使用非准备语句时,系统的执行速度快了~2.5%,使用准备语句时快了~6.5%。这只是一个微小的优势,可能只对某些用户有影响。
缺点
- MySQLI仅适用于MySQL数据库,而PDO是灵活的,并且能够使用多个数据库系统,包括IBM,Oracle和MySQL。如果您必须切换数据库,MySQLI不是最佳选择。
- MySQLi不像PDO那样便携。
- 使用MySQLi绑定参数不像使用PDO那样容易或灵活。MySQLi使用编号绑定系统,不像PDO那样支持命名参数。
就像任何软件更新和改进一样,未来的版本以及旧版本或替代版本的追随者肯定会有bug需要解决。选择MySQLi而不是PDO或MySQL Extension取决于用户的情况和首选项。虽然有些选择客观上比其他的好,但归根结底还是用户的偏好。MySQLi是一个安全和通用的选择,可以与经典的MySQL数据库管理系统交互,事实上,它的名字后面有一个小“i”。