mysqlとmysqliの違いについて

迷茫
迷茫オリジナル
2017-03-26 11:48:371148ブラウズ

Mysqli 接続は永続的な接続ですが、MySQL は非永続的な接続です。

mysql 接続: 新しいプロセスは、2 回目に使用されるたびに再度開かれます。

mysqli 接続: 常に同じプロセスを使用します。

利点: これにより、サーバー側の負荷が大幅に軽減されます。

もちろん、mysql にも永続的な接続が必要な場合は、mysql_pconnect() 関数を使用できます

mysqli のプロセス指向の使用:

$conn = mysqli_connect(‘localhost’, ‘root’, ’123′, ‘db_test’) or (‘error’);
$sql = “select * from db_table”;
$query = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($query)){
echo $row['title'];
}

mysqli のオブジェクト指向の使用:

$conn = mysqli(‘localhost’, ‘root’, ’123′, ‘db_test’);
$sql = “select * from db_table”;
$query = $conn->query($sql);
while($row = $query->fetch_array()){
echo $row['title'];
}
  • mysql_connect、mysql_pconnect、mysqli_connect :

mysql_pconnect によって開かれた接続は閉じられません (mysql_close が呼び出されても、無効であるため閉じられません)。

接続バッファー プールと同様に、同じユーザー名が存在する場合、次回も同じマシン

同じデータベースへの接続の場合、PHP は、再確立することなく、最後に確立された接続を自動的に使用します。

利点: 毎回データベースとの接続を確立するコストを節約します。

欠点: メモリを浪費し、一部の接続を占有する必要があります。そのため、ユーザーのアクセスが多い場合、エラーが発生します。 mysql の max_connections を変更します。パラメータをより大きなサイズに変更するか、mysql_connect() を使用すると問題が解決します。

簡単に言えば、MySQL_pconnect は php と MySQL の間の継続的な接続を確立するために使用されます

一般に、php の実行モードは、スクリプトの実行開始時にすべてのリソースを初期化し、スクリプトの終了後にすべてのリソースを解放します。 MySQL_pconnect のメソッド そうしないと、MySQL_connect は毎回 tcp 経由で SQL サーバーとの関係を再確立することになり、pconnect を使用すると、MySQL への接続リクエストがあるときに、php が次のことを確認します。同一の接続 (同じユーザー名とパスワードで同じ MySQL サーバーに接続) が以前に確立されています。存在する場合は、この接続を直接使用します。同じ接続の概念がプロセスにあることに注意してください。つまり、

MySQL_pconnect に接続する異なるプロセスは複数の接続を確立します

connect と pconnect は機能的な違いをもたらしません。

一般に、PHP には 2 つの動作モードがあり、1 つは CGI の実行時です。

CGI として実行する場合、connect は pconnect と何ら変わりません。これは、CGI が実行されるたびにリソースが破棄され、クリーンアップされるためです。

php が Apache モジュールとして実行される場合、データベースに継続的に接続することはできますが、潜在的な問題が発生する可能性があります。

CGI インストール方法を使用している場合は、php マニュアルを参照してください。 pconnection は有効になりません。

長い接続の最大の欠点は、ユーザーがロックされると、現在のプロセスが永久にロックされることです。

Apache の設定でプロセスが決して破棄されないように設定されている場合は...

私はそれを言い、たくさん記録しました、

つまり、mysql_connect を使用してみてください。これは自動的に割り込みが行われるためです。プログラミングスタイルに合わせて。

リンクバッファプールと同じように、mysql_connect と mysql_pconnect を一緒に使用することもできます

    つまり、mysql_connect と mysql_pconnect を使用してクラスを作成します。
  1. もちろん、下位互換性を考慮しない場合は、mysqli_connect を使用するのが最善です。これは、mysqli 自体が永続的な接続であるためです。

以上がmysqlとmysqliの違いについての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。