Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

PDO o mysqli (pros y contras)

Estas en el tema de PDO o mysqli (pros y contras) en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas, Me gustaría abrir un pequeño debate sobre cual es la forma más optima de trabajar con las bases de datos en especial MYSQL. No ...
  #1 (permalink)  
Antiguo 12/04/2010, 15:39
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 9 meses
Puntos: 20
PDO o mysqli (pros y contras)

Buenas,

Me gustaría abrir un pequeño debate sobre cual es la forma más optima de trabajar con las bases de datos en especial MYSQL. No tengo mucha idea, recién acabo de conocer PDO ya que vengo de la escuela antigua de mysql_query() :D

PROS de PDO
  • Puedes en teoria cambiar de RDBM con tan solo cambiar el driver, no se limita a un solo motor de base de datos.
  • Utiliza la POO

CONTRAS de PDO
  • En el siguiente enlace se critica que PDO tiene un rendimiento inferior a mysqli
http://www.tufuncion.com/select-mysqli-pdo-php


PROS de MYSQLI

Rendimiento

Para el mejor rendimiento deberías escoger entre mysql y mysqli siendo las dos muy parecidas en cuanto a resultados. Aunque la mas recomendable debe ser mysqli puesto que nos ofrece mejores opciones para optimizar la velocidad.
PDO no es el formato que ofrece mayor rendimiento por lo tanto su uso no es demasiado recomendado.

Fuente: http://www.tufuncion.com/select-mysqli-pdo-php

CONTRAS de MSYQLI
  • Solo funciona con MySQL


Muchas gracias por vuestra colaboración!
  #2 (permalink)  
Antiguo 12/04/2010, 21:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: PDO o mysqli (pros y contras)

Si bien MySQLi es más rápido que PDO_MySQL, creo todo esto se resuelve ahora con la introducción de MySQLND, ya que en el backend puedes ocupar por usar ese driver y el rendimiento es casi el mismo.

Saludos.
  #3 (permalink)  
Antiguo 12/04/2010, 23:58
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 9 meses
Puntos: 20
Respuesta: PDO o mysqli (pros y contras)

Cita:
Iniciado por GatorV Ver Mensaje
Si bien MySQLi es más rápido que PDO_MySQL, creo todo esto se resuelve ahora con la introducción de MySQLND, ya que en el backend puedes ocupar por usar ese driver y el rendimiento es casi el mismo.

Saludos.
Quieres decir que ahora en la nueva version de PHP 5.3 han cambiado el driver de mysql, por uno llamado mysqlnd que tiene mejor rendimiento?

He estado investigando

Algunas de las ventajas de usar mysqlnd incluyen:

* Fácil de compilar: no se linkea con libmysql y no tiene dependencias con MySQL.
* Conexiones persistentes para mysqli.
* Usa la administración de memoria de PHP y soporta el límite de memoria.
* Bajo consumo de memoria, mantiene cada registro en memoria sólo una vez; libmysql lo mantiene dos veces.
* Lleva una larga lista de estadísticas sobre la performance y análisis de cuellos de botella.

Fuente: http://www.vivaphp.com.ar/soft/mysqlnd


Features and Limitations

The current release covers the functionality of the libmysql beside some functions that are marked as experimental in the PHP documentation.

The MySQL native driver for PHP does not support the MySQL Server 4.0 or earlier. The MySQL Server 4.0 is no longer supported by MySQL as of 2008-12-31, see also MySQL Lifecycle Policy.

From the API additions discussed with Community members in November 2006 during the Frankfurt PHP conference, we managed to implement:

* improved persistent connections
* mysqli_fetch_all()
* performance statistics call: mysqli_get_cache_stats(), mysqli_get_client_stats(), mysqli_get_connection_stats()

More additions will follow.

Fuente: http://dev.mysql.com/downloads/connector/php-mysqlnd/

Sin embargo, no me queda claro como utilizarlo desde PDO


Q: Does PDO/MySQL support it?

Yes, the MySQL driver for PDO supports mysqlnd.
Fuente: http://dev.mysql.com/downloads/connector/php-mysqlnd/

Q: Will PDO/MySQL support it?

It is up to the PHP community to decide if and when PDO/MySQL will support it. Our development focus is currently on finishing the implementation and giving an example how to use it with ext/mysqli.

Fuente: http://ftp.ku.ac.th/pub/mirror/mysql...lnd/index.html

Muchas gracias de antemano!
  #4 (permalink)  
Antiguo 13/04/2010, 08:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: PDO o mysqli (pros y contras)

Para usarla tienes que hacer ya sea dos cosas:
1.- Encontrar un binario de PHP que tenga linkeado el MySQLND, en lugar de usar libmysql.dll o
2.- Compilar tu propia version de PHP que use MySQLND.

Si vas a hacer lo segundo en la pagina de PHP tiene toda la información sobre como construir tu propia version de PHP usando MS Visual C si estas en Windows, o GCC6 si estas en ambientes *nix.

Saludos.
  #5 (permalink)  
Antiguo 13/04/2010, 10:55
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 9 meses
Puntos: 20
Respuesta: PDO o mysqli (pros y contras)

Cita:
Iniciado por GatorV Ver Mensaje
Para usarla tienes que hacer ya sea dos cosas:
1.- Encontrar un binario de PHP que tenga linkeado el MySQLND, en lugar de usar libmysql.dll o
2.- Compilar tu propia version de PHP que use MySQLND.

Si vas a hacer lo segundo en la pagina de PHP tiene toda la información sobre como construir tu propia version de PHP usando MS Visual C si estas en Windows, o GCC6 si estas en ambientes *nix.

Saludos.
¿GatorV tu la tienes compilada y utilizas PDO utilizando el driver de MySQLND?

Has notado alguna diferencia en rendimiento? o conoces alguna página donde hayan medido el rendimiento?

Muchas gracias y saludos!
  #6 (permalink)  
Antiguo 13/04/2010, 11:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: PDO o mysqli (pros y contras)

No, yo sigo utilizando la versión con libmysql.

Desconozco alguna pagina donde midan el rendimiento.

Saludos.

Etiquetas: mysqli, pdo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:53.