4

私はスターターです。

MySQL 接続を閉じないとどうなるか知りたいです。

1- データベースを閉じずに複数のデータベースを開くことはできますか? 同時に複数のデータベースを開くことはできますか?

2-データベースを閉じると速度が上がりますか?

3- データベースを閉じる必要がありますか、それともオプションですか?

このコードを見てください。「mysql_close()」を使用しないので、リクエストごとにデータベースを閉じません。この PHP ページには多くのリクエストがあります。たぶん毎分50000。このコードにデータベースを閉じる必要があるかどうかを知りたいですか?

<?php   
//Include the file that lets us to connect to the database.
include("database/connection.php");

//Call "connect" function to connect to the database.
connect("database", "localhost", "root", "", "user");

//The GPRS module send a string to this site by GET method. The GPRS user a variable named variable to send the string with.
$received_string = $_GET["variable"];

//Seprates data in an array.
$array_GPRS_data = explode(",", $received_string);

//we need to remove the first letter.
$array_GPRS_data[9] = substr($array_GPRS_data[9], 1);


$array_GPRS_data[13] = substr($array_GPRS_data[13], 4, 2).substr($array_GPRS_data[13], 2, 2).substr($array_GPRS_data[13], 0, 2);

//Query statement.
$query = "INSERT INTO $array_GPRS_data[17](signal_quality, balance, satellite_derived_time, satellite_fix_status, latitude_decimal_degrees,
latitude_hemisphere, longitude_decimal_degrees, longitude_hemisphere, speed, bearing, UTCdate, theChecksum)
VALUES('$array_GPRS_data[0]', '$array_GPRS_data[1]', '$array_GPRS_data[5]', '$array_GPRS_data[6]', '$array_GPRS_data[7]',
'$array_GPRS_data[8]', '$array_GPRS_data[9]', '$array_GPRS_data[10]', '$array_GPRS_data[11]', '$array_GPRS_data[12]', '$array_GPRS_data[13]',
'$array_GPRS_data[16]')";

//Run query.
$result = mysqli_query($query);

//Check if data are inserted in the database correctly.
if($result)
{
    echo("*#01");
}
else
{
    echo("Error: 001");
    echo (mysqli_error());
}   
?>
4

2 に答える 2

13
  1. はい、複数のデータベース接続を持つことができます。データベースを開いているのではなく、データベース接続を開いています。データベースは、接続しているかどうかに関係なく、常に「開いている」(実行中の) 状態です。
  2. 場合によります...ページで開いている接続が1つしかない場合は、PHPが完了すると自動的に閉じるため、閉じる必要はありません。接続数が多いと、データベース サーバーの速度が低下したり、データベース サーバーが使用可能な接続を使い果たしたりする可能性があります (同時に開くことができる接続の数は特定の数に限られます)。とはいえ、最新のデータベース サーバーのほとんどは、数百の同時接続を処理できます。
  3. オプションですが、推奨されます。中小規模のプロジェクトでは大したことではありません (つまり、同時に 100 人未満の同時訪問者がいる場合でも、おそらく問題はないでしょう)。毎分何千もの訪問者がいるため、データベース接続が完了したらすぐにアクティブに閉じて、できるだけ早く解放する必要があります。
于 2013-10-15T05:29:58.033 に答える
3

データベースに接続したら、閉じる必要はありません。非永続的な接続は、スクリプトの実行の最後に自動的に閉じられます。

詳細については、これに従ってください

于 2013-10-15T07:03:42.417 に答える