2012-04-30 13 views
1

私は、MySQLデータベースを設定していると私はそれを構築するための最良の方法のわからない:MySQLデータベースの設計

ところ、数百人が意志私はシステム(PHP/MySQLをベース)を設定していますデータベースへのSELECT/UPDATE/SET/DELETE問合せを実行している可能性があります(おそらく約50件)。彼らはすべて同じデータベースとテーブルを使用している場合は、数千の行になると思う。私は多くのテーブルにデータを分割することができましたが、それらがすべて統一されていることを確認する必要があります。管理者が管理インタフェースを更新するためにcronを使用してSELECT DISTINCTクエリを実行します。

このアプローチにはどのような方法が最適ですか?誰もが1つのデータベースを共有できますか? 1つのテーブル?数千の行があるときに問題はありますか?私は時間の経過とともに巨大なパフォーマンスの問題が生じるだろうと思っています。

ヒントやご提案は大歓迎です!

+0

他の人のレコードを見たり編集したりするのを防ぐ必要もあります_(行は実際のレコードではありません)_私は準備済みのステートメントでこれを対処できることを期待しています。これは実行可能ですか? – DesignGoggles

+0

あなたがしようとしていることを正確に説明できるなら、私はあなたにこれを手伝ってくれるでしょう。私のホームページを介してユーザープロフィールに連絡してください。がんばろう。 – ionFish

+0

本質的に何が起こっているのですか...人々は私のデータベースを更新するウェブサイトにコードスニペットを読み込んでいます。同じコードスニペットでデータベースが読み込まれ、一連のデータがウェブマスターに返されます。それは私が提供できる程度の詳細です。 – DesignGoggles

答えて

3

あなたのサーバが十分に強力である限り、MySQL/phpはこれを簡単に処理できます。 MySQLはRAMを愛し、可能な限り使用します(あなたが提供する制限内で)。

多くの同時ユーザーがいる場合は、MyISAM(MySQLバージョン< 5.5のデフォルト)の代わりにinnodbテーブルを使用することをお勧めします。 Innodbは、MyISAMのようにテーブル全体をロックするのではなく、INSERT/UPDATE/DELETEなどを行うときに個々の行をロックします。

私たちはphp/MySQLを使用しており、同時に私たちのサイトには10​​00人以上のユーザーがいます(Master DBサーバーは毎秒約4kクエリを実行します)。

+0

Innodbのチップをありがとう。私はMyISAMがテーブル全体をロックするのを忘れていました。これは、プロジェクトの規模が拡大するにつれて問題になっていました。 すべてを1つのテーブルにまとめることは、道にあるようです。サーバーのパワーに関しては、テスト中の容量にはほとんど影響がなかったので、そこではうまくいくはずです。 質問にお答えしました、ありがとうございます! – DesignGoggles