PDO介绍[不包括具体使用方法]

#事实上
PHP对数据库支撑并不好,最重要的一点就是抽象度不够,访问接口不统一。
#why
PHP针对每种数据库都有一个独立的模块、一组独立的函数。这样的结构和设计让PHP兼容多种数据库变得困难。
一旦要将一个应用移到另外一个数据库环境中,或添加新的数据库,就需要重新编写和数据库相关的操作。
#so
PDO出现了。它是一个抽象的数据模型(一个抽象接口层),提供一个通用接口访问多种数据库。
#now
PHP连接数据库有三种选择

  1. MySQL 系列函数:原生函数 过程式风格

  2. MySQLi 系列函数:扩展,MySQL系列函数的增强版,提供过程式和面向对象两种的风格的API,新增预编译和参数绑定等新的特性

  3. PDO:扩展,从语法上更接近MySQLi(5.1及以上支持)
    #tips
    PDO扩展只是一个抽象的接口层,利用PDO扩展本身并不能实现任何数据库操作,必须使用一个特定的数据库PDO驱动访问数据库。
    #PDO效率问题
    既然PDO有如此多的特性,那么应不应该马上使用PDO呢?
    [以下结论是基于5.3 测试过程省略]

  4. 首先要考虑效率问题
    如果项目对运行效率要求严格,则应该使用MySQL 或MySQLi

  5. 负载方面
    根据众多使用者测试,PDO开启长连接后负载高于MySQL直连且比较稳定,另有使用者测试,PDO连接MySQL、Oracle 速度比直连有优势。

  6. 应用会迁移到其他数据库吗?
    实际应用中,90%的应用是不会进行数据库迁移的,必要性不大。

综上所述,即使在Oracle中,预编译和参数绑定也不一定能提速,反而有可能会因为执行计划被改变造成效率低下。有些数据库预编译反而会造成效率低下。推荐在新应用中尝试使用PDO,旧应用没必要重构。

[本文观点摘自某书籍]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值