sql >> データベース >  >> RDS >> Mysql

PHPおよびjQueryとのライブチャット。情報をどこに保存しますか? Mysqlまたはファイル?

    誰もが幅広い意見を述べていますが、実際に頭に釘を打った人はいないと思います。

    データの保存に関しては、データの量、アクセスされる速度、およびその他のいくつかの要因がすべて、最適なストレージプラットフォームを決定します。

    memcachedの使用を提案する人もいます。これは有効な答えですが(できます 使用してください)、memcachedがサーバーのメモリ内にデータを格納するという事実だけに基づいて、これは良い考えではないと思います。

    メモリはデータストレージ用ではなく、実際のアプリケーション、オペレーティングシステム、共有ライブラリなどを使用するためのものです。

    メモリ内にデータを保存すると、現在実行中の他のアプリケーションで多くの問題が発生する可能性があります。 RAMに保存するデータが多すぎると、アプリケーションは割り当てられた操作を完了できなくなります。

    これはMySQLなどのディスクベースのストレージプラットフォームよりも高速ですが、信頼性は低くなります。

    私は個人的にMySQLをストレージエンジンのサーバー側として使用します。これにより、発生する問題の量が減り、データが非常に管理しやすくなります。

    クライアントへの応答を高速化するために、ノード を実行することを検討します。 サーバー上で。

    これは、イベント駆動型で非ブロッキングであるためです。

    それはどういう意味ですか?

    クライアントAがハードドライブに保存されているデータを要求すると、従来はPHPがC ++に言って、ハードドライブのこのセクターに保存されているデータのチャンクを取得します。 C ++は「問題ありません」と言い、情報を取得している間、PHPはデータが読み取られて返されるのを待ってから、操作を続行します。ブロック その間、他のすべてのクライアント。

    ノードでは、少し異なります。ノードはカーネルに「この情報のチャンクを取得し、完了したら電話をかけてください」と言います。その後、ディスクアクセスを必要としない可能性のある他のクライアントからの要求を引き続き受け取ります。

    突然、カーネルにコールバックを割り当てたので、待つ必要はありません:)、幸せな日々。

    この画像を見てください:

    これは本当にあなたが探している答えかもしれません。ノードがあなたにとって正しい選択である方法に関するより説明的で詳細な情報については、以下を参照してください:



    1. キーワード/予約語を含むPHPMySQLクエリ

    2. ユーザー情報とユーザーログインおよびパスワードを最適に保存する方法

    3. コメントの総数を数える方法

    4. UPDATEを使用したexecSQL()は更新されません