2011-12-09 5 views
3

私はMySQLとPHPを利用するアプリケーションを作成しています。私の現在のWebホスティングプロバイダには、1GBのMySQLデータベースサイズの制限がありますが、1GBのデータベースを多数作成することができます。大規模なデータベースを許可する別のWebホスティングプロバイダを見つけることができたとしても、大規模なデータベースの影響を受けるデータの完全性とスピードはどうですか?ディスクサイズに関してデータベースを小さく保つ方が良いですか?言い換えれば、何千人ものユーザーから同じデータ(すべてのテキスト)を保存するベストプラクティスの方法は何ですか?私はデータベースの設計と計画を初めて行っています。最終的には、何千人ものユーザーからのデータを含む単一のデータベースが非効率的になり、最適な形で、より小さいデータベース間でデータを分散する必要があると私は考えています。これは正しいですか?PHPアプリケーションからのデータ入力で複数のMySQL 1 GBデータベースを管理する

私のアプリケーションは、別のテーブルを作成する(または手動で作成された別のテーブルに切り替える)タイミングをどのように知っていますか?たとえば、1GBのデータでいっぱいになった1つのデータベースがある場合、私は自分のアプリケーションがサービス遅延なしで作業を続けることを望んでいます。 1つのテーブルから2つ目の新しく作成されたデータベースへのデータの入力をどのように制御できますか?

同様に、ユーザーが2011年にWebサイトに参加して100レコードの情報を作成し、何千人もの他のユーザーが同じことをした場合、1 GBデータベースがいっぱいになります。後で、元のユーザーは、別の1 GBデータベースで作成された100個のレコードを追加します。私のPHPコードは、2セットの100レコードを照会するデータベースをどのように知っていますか?これは、MySQLの最後で何らかの方法で自動的に管理されるでしょうか? IF/THEN/ELSE文がPHPコードで管理される必要がありますか?これは、一部のWebホスティングプロバイダが提供するサービスですか?

+2

これは非常に広い質問です。書籍はあなたの最初の段落について書かれています... – rdlowrey

+0

1GBは、テキストストレージのためのスペースのボートロード、バイナリデータを入れ始め、すべての賭けはオフです。 – Scuzzy

+2

大規模なデータベースを保管できる別のホスティングプロバイダが必要です。 1GBは大規模なデータベースでもありません。 3番目のパラグラフでメモしているように、1GBのチャンクに分割することは狂気につながります。 – derobert

答えて

1

これは非常に抽象的な質問であり、一般的なstackoverflowが適切な場所であるかどうかはわかりません。

いずれにしても。格納のベストプラクティス方法は何ですか?方法について:ディスク上のファイルで。データベースはファンディックな '読み込み'と '書き込み'コマンドを持っています。

最適化は難しく、物事を交換することはできます。メモリ使用量のCPU、書き込み速度の読み取り速度、データの大容量記憶または速度。 (または、より良いホストプロバイダを手に入れて、あなたのデータベースを必要なだけ大きくする))

2つ目の質問に答えるには、データベースアプローチを行う場合、ユーザーを移行するシステムを設定する必要がありますデータベースが満杯になると、データベースから別のデータベースに移動します。 1GBの80%に達したら、ユーザーの移行を開始してください。

データベースのサイズを検出するのは難しい問題です。あなたは、ディスク上のRAWファイルを見て、それがどれほど大きいかを見ていると思うかもしれませんが、おそらくもっと賢い方法があります。

+0

フィードバックいただきありがとうございます。私は出発点を探していたと思う。私はその話題の本を読むようになるはずです。 1 GBを小規模データベースと見なすと、大きなデータベースとは何でしょうか?私は彼らが何を提供しているかを見るためにウェブホスティングプロバイダを調べなければならないでしょう。 – webdude77

+1

大規模なデータベースは、もは​​や1台のマシンにインストールすることができなくなるでしょうか? – Halcyon

+0

O'reilly "High Performance MySQL"をこのスターターとして強くお勧めします。フリルはあなたを良い先導者にしますが、SOが提供できる情報よりも多くの情報が必要になります。本書には本棚全体があります。 –

0

あなたのケースでは、SQLiteを使用することをお勧めします。それは2テラバイト(2^41バイト)のデータベースをサポートしており、最も重要なのはサーバー側のインストールを必要としないことです。だからどこにでも互換性があります。必要なのは、SQLiteデータベースを扱うライブラリだけです。

また、サポートするデータベースとサイズを見ずにホストを選択することもできます。

関連する問題