2016-12-31 14 views
0

私のプロジェクトは、動的ページを持つWebサイトです。MySQLの最大接続時間(分)最適値

ユーザーがクエリを実行するたびに(PHPによって生成されたテーブルに結果が表示されます)、データベースに接続し、クエリを実行してすぐに切断します。

ユーザーが作成できるクエリの最大値を推定すると、結果は60分×5クエリ/分= 300クエリ/時間になります。

JavaScriptで追加のクエリを生成している場合は、追加のクエリを追加できます。

これを考慮して、私の最大接続数は... 400にする必要があります。もちろん、これはおそらく最大値です。

これは間違いありませんか? 「いつも」の価値が何であるか教えていただけますか?

編集:私はこの問題について全く経験がありません。私はdbAではありません。私はアカウントごとにこれらの数を制限することが良いセキュリティポリシーだと思った。

私の接続コードは次のとおりです。すべての

$db_conn = mysqli_connect("localhost", $username, $password, "Database"); 
if (mysqli_connect_errno()) 
    { 
    $err_message = 'Unable to connect to DB'.PHP_EOL.mysqli_connect_error(); 
    ... 
    } 
+0

これはあなたの環境に完全に依存しますが、これに下限を設定する理由はありません。計算を行い、100または1000を掛けてください。時間当たり100,000クエリより低い値を設定することはお勧めしません。 – LStarky

+0

あなたはmysql設定が1時間あたりの最大量*と思われるのはなぜですか?私が見る限り最大の同時クライアント接続数は**です:https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_max_connections – rednaw

+1

データベースを作成しようとしています接続永続性 –

答えて

1

MAX_CONNECTIONS_PER_HOUR、MAX_QUERIES_PER_HOUR、またはその原料の任意のPHPのWebアプリケーションへのおGRANTのアクセスを制限しないでください。それは何も良いことができません。あなたのPHPアプリケーションがこれらの制限にぶつかると、ユーザーに厄介なエラーメッセージが表示されてしまいます。それはウェブアプリケーションのためのものではありません。 adam、barney、charlieのそれぞれが独自のユーザ名とパスワードをMySQLサーバ上に持っている、企業スタイルのアプリケーションのためにあります。

通常、Webサーバーマシンには、すべてのユーザーに代わって使用される1つまたは2つのユーザー名とパスワードの組み合わせがあります。ユーザーがパスワードを知っているMySQLサーバー上にアカウントを作成することは、セキュリティ上の悪い習慣です。

最大接続数は、MySQLサーバーマシンのサイズと、Webアプリケーションを提供するWebサーバーマシンの数によって異なります。 mysqli_ has persistent connections built inであるため、接続が再利用されます。接続がなくなると、通常はPHPのリクエストがキューに入れられます。

あなたのWebサーバーマシンがそれぞれ16gのメモリを持つ巨大なクワッドコアモンスターでない限り、Webサーバーマシンごとに100の接続はおそらく問題ありません。

+1

ところで、あなたの質問であなたがした負荷の計算は健全です。このアプリケーションをスケールアウトする準備が整ったら、この種の計算が再び現れます。 –

+0

私のウェブサイトはホストされているので、サーバは接続番号に問題はありません。この質問に対する私の理由は、セキュリティーでした。私はこれに完全に新しいです - これは私に「これは(私の考え、それは正しいのですか)」と尋ねる理由です。すべてのあなたの答えとコメントをありがとう。 – Mikey

+0

ホスティングプロバイダにMAX_CONNECTIONS_PER_HOURなどを制限させないでください!彼らはおそらく試してみませんが、そうした場合、それらを発射し、別のプロバイダを取得します。真剣に。 –

1

まず...

これを制限するためのあなたの目的は何?あなたがサーバーのリソースを心配している場合は、そうである必要はありません。 MySQLは非常に効率的で、時間当たりのTRILLIONSのクエリを管理できます。後で問題を引き起こす可能性のある下限を設定するのはなぜですか?私はこの価値をまったく設定する理由をあまり見ないし、確かにあなたの想像力があなたのウェブサイトが成長すると想像できるものよりも小さいものにはなりません。したがって、これを指定する場合は、それが100,000のような大きな数字であることを確認してください。ユーザーアカウントを作成するプロセスにいるので

第二

は...たぶん、あなたは求めています。ただし、ここで指定されたパラメータは(オプション)であり、ほとんどの場合、おそらくあまり心配はありません。私は、特定の問題がなければ、これらのオプションを指定しないことをお勧めします。

http://dev.mysql.com/doc/refman/5.6/en/user-resources.html

+0

はい、私は今日アカウントを作成しています - このウェブサイトは私と私のプロジェクトだけで開発されていますので、他に質問する人はいません。 – Mikey