Pessoal,
O que vocês estão usando?
Vou começar na V9 e queria saber qual dos dois drivers está sendo mais eficiente. Até aqui usei o PDO mas estou imensamente inclinado a utilizar o Mysqli.
Jovito
Pessoal,
O que vocês estão usando?
Vou começar na V9 e queria saber qual dos dois drivers está sendo mais eficiente. Até aqui usei o PDO mas estou imensamente inclinado a utilizar o Mysqli.
Jovito
Meio que responde então cito:
http://www.scriptcase.com.br/forum/index.php/topic,13026.msg67768.html#msg67768
Na prática o Mysqli usando o Mysqlnd.
E mais rápido que PDO.
Eu continuo usando PDO, porque uso ele com outros bancos.
[color=red]MySQLi:
Vantagens:
API Orientada a objetos e procedural;
Performace elevada;
Sintaxe relativamente mais simples (e similar a antiga API mysql_*);
Desvantagens:
Só funciona com bancos MySQL;
Não possui parâmetros nomeados;
Não possui prepared statements do lado cliente;
PDO:
Vantagens:
Funciona com 12 drivers de bancos de dados diferentes (4D, MS SQL Server, Firebird/Interbase,
MySQL, Oracle, ODBC/DB2, PostgreSQL, SQLite, Informix, IBM, CUBRID);
API Orientada a objetos;
Possui parâmetros nomeados;
Possui prepared statements do lado cliente (ver desvantagens abaixo)
Desvantagens:
Não tão veloz quanto MySQLi;
Por padrão, ele simula prepared statements (você pode ativar a versão nativa ao configurar a conexão dele
com o banco, mas caso a versão nativa não funcione por algum motivo, ele volta a simular os
prepared statements sem disparar erros ou avisos.)
Entre as duas opções eu dou preferência ao PDO, mesmo sendo um pouco mais lento (entre 2%-7%).
Ao meu ver, o fato do PDO se comunicar com mais drivers de BDs e de possuir prepared statements, que é
de grande valia quando o assunto é segurança, na minha opinião torna esta tecnologia mais interessante.
Ou seja, se fores usar somente MySQL, o MySQLi se torna melhor… mas se fores usar outros bancos aí o PDO se torna a solução. Vai depender do que você vai fazer.
Eu já tive problemas com MySQLi que só se resolveram com PDO, então padronizei como uso o PDO, a escolha foi meio forçada, mas sempre prezo a performance, sendo assim vou refazer meus testes na V9 (como esta com PHP7) penso em retomar a conexão ao Mysql Transaction.
Haroldo,
Na V9
Mysql Transaction e outros = mysql -> https://secure.php.net/manual/pt_BR/book.mysql.php
Para Mysqli agora o driver aparece na lista corretamente MySQLi.