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

100Goテーブルのどのdbマネージャーですか?

    私はあなたが言及したすべてのデータベースを使用します。この負荷については、すでにPostgreSQLでさらに高い負荷を使用しているため、MySQLまたはPostgreSQLをお勧めします。しかし、MySQLも同じ仕事をします-挿入負荷が高いように最初から設計されているので、おそらくもっと良いでしょう。

    私が使用したPostgreSQLのソリューションは、通信ネットワークからのシステムメッセージの保存に使用され、1台のマシンで1日あたり最大300GBのデータを問題なく収集できました。ただし、適切なHWアーキテクチャが必要です。

    少なくとも8CPUのマシンが必要ですが、それ以上の方が優れており、いくつかの挿入キューが必要です。 JavaまたはCのローダーを使用するか、より多くの並列脅威を持つgolangを使用し、1つのバルクで最大10000レコードに対してCOPYコマンドを使用して、すべての脅威からバルク挿入を実行します。 PostgreSQLは新しい接続を開くためのオーバーヘッドが高いため、接続プールを使用する必要があります。

    また、個別の物理ディスク上の各テーブルスペース、または個別の物理ディスクアレイ上のより適切なテーブルスペースにデータを分散するのにも役立ちます。可能であれば、生データにインデックスを使用しないでください。生データを集計結果から分離します。

    PostgreSQL用のpl/proxy拡張機能と、時間でパーティション化された生データ用のいくつかの物理マシンを使用する別のソリューションがありました。このシステムは、1日あたり少なくとも1 TBを収集できましたが、適切な量のスレーブデータベースを使用するとさらに多くのデータベースを収集できました。

    ただし、この量のデータを実際に処理するには、適切な構成の適切なハードウェアが必要であることを理解する必要があります。いくつかの「ノートブックのような構成」で奇跡を起こす魔法のデータベースはありません...

    InfluxDBは本当に素晴らしい時系列データベースであり、監視に使用します。十分なCPUと本当にたくさんのメモリがあれば、それも使用できると思います。挿入はメモリのコストが高いため、最低64GBのRAMが必要になると思います。したがって、キューの挿入が増えると、データベースはすべてをメモリに格納し、タグのインデックスを自動的に作成するため、より多くのメモリが必要になります。




    1. MySQLでBTREEの代わりにHASHを使用できるのはいつですか

    2. Oracle[手順]-Sum関数はWHERE句を無視します

    3. ストアドプロシージャを呼び出すときにJPAトランザクションでエラーが発生しました

    4. MySQLを2列で並べ替え