-1

mysqlのストレステストを試みています:

 for($i=0;$i<30000;$i++)
{
 mysql_connect("localhost","admin","admin");
 mysql_select_db("magic");
 mysql_query(INSERT INTO Persons
 VALUES   (4,'9999999999999999999999999999999999999999999999999999999999999999999999999999999999'));
 mysql_close(); 
}

25985を挿入するだけで、それ以上は挿入しません。テーブルスキーマ:id = primary int、content = long text

error cannot connect to mysql最大接続数を増やしても、Ttは私に与えます。

任意の解決策をいただければ幸いです:)

4

2 に答える 2

2

「接続量が非常に多いです!」冗談です!

接続数は、コンピューターで使用可能なRAMの数によって提供されます。したがって、RAMのジャイガバイトがある場合は、システム、接続に許可されているRAMなどに応じて、10kの接続を使用できます。

ここで確認してください:MYSQL:接続が多すぎます

MySQLがサポートできる接続の最大数は、特定のプラットフォーム上のスレッドライブラリの品質、使用可能なRAMの量、各接続に使用されるRAMの量、各接続からのワークロード、および必要な応答時間によって異なります。

なぜ同時に多くの接続が必要なのですか?1つの接続と30.000の挿入は問題ありませんが、同時に30.000の接続は問題ありません。

それが役に立てば幸い :)

于 2012-07-15T15:41:33.790 に答える
1

これはおそらく、ループが繰り返されるたびに接続を開いたり閉じたりするためです。ほとんどの実装では、接続を頻繁に再確立しないようにキャッシュが使用されます。

mysql_connect("localhost","admin","admin");
mysql_select_db("magic");
for($i=0;$i<30000;$i++)
{
    mysql_query(INSERT INTO Persons
    VALUES   (4,'9999999999999999999999999999999999999999999999999999999999999999999999999999999999'));
}
mysql_close(); 
于 2012-07-15T15:42:00.090 に答える