<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.mysqlnd.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'mysqlnd.overview.php',
    1 => 'Vis&atilde;o Geral',
    2 => 'Vis&atilde;o Geral',
  ),
  'up' => 
  array (
    0 => 'book.mysqlnd.php',
    1 => 'Mysqlnd',
  ),
  'prev' => 
  array (
    0 => 'book.mysqlnd.php',
    1 => 'Mysqlnd',
  ),
  'next' => 
  array (
    0 => 'mysqlnd.install.php',
    1 => 'Instala&ccedil;&atilde;o',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'reference/mysqlnd/overview.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mysqlnd.overview" class="chapter">
 <h1 class="title">Visão Geral</h1>

 <p class="simpara">
  <strong>O que o mysqlnd não é</strong>
 </p>
 <p class="simpara">
  Embora o Driver Nativo MySQL seja escrito como uma extensão PHP, é
  importante observar que ele não fornece uma nova API para o programador
  PHP. As APIs do programador para conectividade de banco de dados MySQL são
  fornecidas pela extensão MySQL, <code class="literal">mysqli</code> e PDO
  MYSQL. Essas extensões agora podem usar os serviços do Driver Nativo
  MySQL para se comunicar com o servidor MySQL. Portanto, não se deve
  pensar no Driver Nativo MySQL como uma API.
 </p>
 <p class="simpara">
  <strong>Por que usá-lo?</strong>
 </p>
 <p class="simpara">
  A utilização do Driver Nativo MySQL oferece uma série de vantagens
  em relação à utilização da Biblioteca Cliente MySQL.
 </p>
 <p class="simpara">
  A antiga biblioteca cliente MySQL foi escrita pela MySQL AB (agora Oracle
  Corporation) e, portanto, foi lançada sob a licença MySQL. Isso
  acabou fazendo com que o suporte ao MySQL fosse desativado por padrão no PHP.
  Porém, o Driver Nativo MySQL foi desenvolvido como parte do projeto
  PHP, sendo portanto liberado sob a licença PHP. Isso elimina
  problemas de licenciamento que foram problemáticos no passado.
 </p>
 <p class="simpara">
  Além disso, no passado, era necessário construir as extensões de banco de dados MySQL
  com uma cópia da biblioteca cliente MySQL. Isso normalmente significava que
  era necessário ter o MySQL instalado em uma máquina onde o código-fonte PHP
  estivesse sendo compilado. Além disso, quando o aplicativo PHP estava em execução, as
  extensões do banco de dados MySQL chamavam o arquivo da biblioteca do cliente
  MySQL em tempo de execução, portanto, o arquivo precisava estar instalado no sistema.
  Com o Driver Nativo MySQL isso não acontece mais, pois está incluído
  como parte da distribuição padrão. Portanto, não é mais necessário o MySQL
  instalado para construir o PHP ou executar aplicações de banco de dados PHP.
 </p>
 <p class="simpara">
  Como o Driver Nativo MySQL é escrito como uma extensão do PHP, ele está
  fortemente acoplado ao funcionamento do PHP. Isso leva a ganhos de
  eficiência, principalmente no que diz respeito ao uso de memória, já que o driver
  utiliza o sistema de gerenciamento de memória PHP. Ele também suporta o limite de memória
  do PHP. Usar o Driver Nativo MySQL leva a um desempenho comparável ou
  melhor do que usar a Biblioteca Cliente MySQL, garantindo sempre o
  uso mais eficiente da memória. Um exemplo de eficiência de memória é
  o fato de que ao utilizar a Biblioteca Cliente MySQL, cada linha é armazenada
  na memória duas vezes, enquanto no Driver Nativo MySQL cada linha é armazenada
  apenas uma vez na memória.
 </p>
 <blockquote class="note"><p><strong class="note">Nota</strong>: 
  <strong>Reportando o uso da memória</strong><br />
  <span class="simpara">
   Como o Driver Nativo MySQL utiliza o sistema de gerenciamento de memória PHP, seu
   uso de memória pode ser rastreado com <span class="function"><a href="function.memory-get-usage.php" class="function">memory_get_usage()</a></span>.
   Isso não é possível com a libmysqlclient porque ela usa a função C
   malloc().
  </span>
 </p></blockquote>
 <p class="simpara">
  <strong>Special features</strong>
 </p>
 <p class="simpara">
  O Driver Nativo MySQL também fornece alguns recursos especiais não disponíveis
  quando as extensões de banco de dados MySQL utilizam a Biblioteca Cliente MySQL. Esses
  recursos especiais estão listados abaixo:
 </p>
 <ul class="itemizedlist">
  <li class="listitem">
   <span class="simpara">
    Conexões persistentes melhoradas
   </span>
  </li>
  <li class="listitem">
   <span class="simpara">
    A função especial <span class="function"><a href="mysqli-result.fetch-all.php" class="function">mysqli_fetch_all()</a></span>
   </span>
  </li>
  <li class="listitem">
   <span class="simpara">
    Chamadas para estatísticas de desempenho:
    <span class="function"><a href="function.mysqli-get-client-stats.php" class="function">mysqli_get_client_stats()</a></span>,
    <span class="function"><a href="mysqli.get-connection-stats.php" class="function">mysqli_get_connection_stats()</a></span>
   </span>
  </li>
 </ul>
 <p class="simpara">
  O recurso de estatísticas de desempenho pode ser muito útil na
  identificação de gargalos de desempenho.
 </p>
 <p class="simpara">
  O Driver Nativo MySQL também permite conexões persistentes quando utilizado
  com a extensão <code class="literal">mysqli</code>.
 </p>
 <p class="simpara">
  <strong>Suporte a SSL</strong>
 </p>
 <p class="simpara">
  Driver Nativo MySQL suporta SSL.
 </p>
 <p class="simpara">
  <strong>Suporte a Protocolo com Compressão</strong>
 </p>
 <p class="simpara">
  Driver Nativo MySQL suporta o protocolo cliente-servidor
  com compressão. A extensão <code class="literal">ext/mysqli</code>, se configurada para usar Driver Nativo MySQL,
  também pode tomar vantagem deste recurso. Observe que <code class="literal">PDO_MYSQL</code>
  <em>NÃO</em> suporta compressão quando usada junto com mysqlnd.
 </p>
 <p class="simpara">
  <strong>Suporte a Tubos Nomeados</strong>
 </p>
 <p class="simpara">
  Tubos nomeados podem ser usado para conexão em ambientes Windows.
 </p>
</div>
<?php manual_footer($setup); ?>