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

非常に大きなデータを格納するテーブルを設計するにはどうすればよいですか?

    そのサイズでは、VLDBの領域(非常に大規模なデータベース)になります。その高度では、状況が根本的に異なります。

    アプリケーションの責任の完全な要件がなければ、質問に答えることはできません。アプリケーションが行うべきことに関してパフォーマンスを考慮して設計する必要があります データで。

    私のアドバイスは、以前の経験を持つ誰かを乗船させることです。そうしないと、ほぼ100%失敗することが保証されます。

    Oracleを使用する場合は、非常に注意深く使用する必要があるいくつかのタイプのパーティショニングが提供されます。管理目的(データの移動、インデックスの作成、データの回復)とクエリのパフォーマンスのためにパーティションが必要です:

    • たとえば日付範囲による範囲分割
    • 国ごと(「SE」、「US」、「GB」)のデータのスライスを格納するためのリストのパーティション化
    • ハッシュ分割。ハッシュ関数に基づいて、データをパーティションの1つに保存します
    • または上記の任意の組み合わせ

    また、本当に素晴らしいI/Oスループットを備えたモンスターマシンを構築および構成する方法を知っている人が必要です。 1GB / s以上が必要ですが、200TBも保存する必要がある場合はそれほど安くはありません。実際、これらの200 TBがテーブルデータのみの場合、インデックス、集計テーブル、バックアップなどを作成できるようにするには、それを2倍または3倍にする必要があります。

    申し訳ありませんが、すぐに使用できるソリューションを提供できませんでしたが、平均以上のサイズのデータ​​ベースを構築しているだけではないことを理解していただきたいと思います。巨大です!



    1. SQLでクエリを作成するのに助けが必要ですか?

    2. SQLite3およびPostgres/Heroku RubyonRailsクエリの問題

    3. PHPで複数のmysqlクエリを一緒に実行する方法は?

    4. データベースとファイルシステムへのファイルの保存