1

私は非常に動的で、MySQLデータベースを常に使用するサイトを開発しています。私の質問は-データベースの負荷について心配する必要がありますか?
たとえば、サイトの一部には、AJAXを使用してユーザーごとに毎秒データベースに接続するライブチャットがあります。接続しているユーザーの数によっては、多くのクエリが発生します。

これはMySQLデータベースが処理できるものですか、それとも私はそれをプッシュしていますか?ありがとう。

4

1 に答える 1

3

あなたは実際にそれを押しています。サーバーとオンライン ユーザー数に応じて、MySQL はある時点で処理できます。

MySQL やその他のデータベース管理システムはデータ ストレージ システムであり、実際にデータを保存しているわけではありません。MySQL を介してクライアント間でデータを送信しているだけで、効率的ではありません。

ただし、処理を高速化するために、インスタント メッセージに MySQL メモリ テーブルを使用し、オフライン メッセージを別の MyISAM または InnoDB テーブル (データを保存するテーブル) に保持することができます。

しかし、チャット インフラストラクチャを持つための最良の方法は、すべてのメッセージをメモリに保持するバックエンド アプリケーションを持ち、一定の制限の後、受信されなかったメッセージをオフライン メッセージとして MySQL に送信することです。これは MySQL メモリ テーブルに非常によく似ていますが、データをより細かく制御できます。これに関する問題は、適切なメモリ管理を備えた論理的で効率的なデータ構造を実装する必要があることです。これは、商用製品を行っていない場合は非常に困難な作業であり、そのチャット システムの販売を考えていない場合は不要です。そのため、MySQL の使用をお勧めします。私が説明したメモリテーブル。

Update
Mysql Memory Tables は揮発性 (サービス/サーバーの再起動時にリセットされる) であるため、保存には使用せず、インスタント メッセージの短時間のデータ保持にのみ使用してください。

于 2012-04-15T13:06:31.827 に答える