web-dev-qa-db-ja.com

mysqli-$ result-> close();を本当に行う必要があるか&$ mysqli-> close();?

Mysqliの使用を開始しました。小規模なWebサイトで小さなデータセットを使用している場合(トラフィックに関して)、これらを常に使用する必要がありますか?

$result->close(); 
$mysqli->close();

また、カスタムPHPを実行し、MySQLがフレームワークなしで動作する場合、mysqliはMySQLと対話する一般的な推奨方法ですか?

32
James

PHPは、スクリプトの終了時に開いているすべてのファイルとDB接続を閉じます。接続が完了したら手動で行うことをお勧めしますが、そうしなくても大丈夫です。スクリプト全体で使用されるDB接続がある場合は、開いたままにしておくこともできます。

PDOで+1

35
Emil Vikström

このスレッドの更新が必要だと感じました...

現在のドキュメントによれば、$ mysql-> close()に加えて、常に$ mysql-> kill()を使用する必要があります。

$thread = $mysqli->thread_id;
$mysqli->kill($thread);
$mysqli->close();

(補足として、MySQLでPDOを使用することについてOracle開発者に尋ねました。彼らはMySQLiのみを使用しています。PDOはメンテナンスされておらず、MySQLの現在の機能の多くをサポートしていません。)編集:廃止されたコメント。

編集:提案されているように、ステートメントの順序を切り替えました。

15
Ixalmida

クリーンアップを正しく行う習慣を身に付ける必要があります(完了したらすぐに閉じる)。そうしないと、リソースリークがパフォーマンスに影響を与えるまで徐々に蓄積する可能性があります。

どのDBレイヤーに関しても、 [〜#〜] pdo [〜#〜] を学習することは、適切に設計され、すべての主要なデータベースと互換性があるため、価値があります。

4

不要になったリソースを早期にリリースすることをお勧めします。これにより、同じページにアクセスする同時ユーザーの数が多い場合にリソースのピークを回避できます。

2
Raj