3

私はシステムを設計しており、数字を深く掘り下げていくと、年間 54,240,211,584 レコード (およそ) のテーブルが存在する可能性があることに気付きました。おお!!!!

それで、私はそれを 73,271,952 レコード/年 (概算) に分解します。

次の場合に何が起こるかをExcelで実行して数値を取得しました:
a)成功なし= 87ユーザー、
b)低モデレート成功= 4300ユーザー、
c)高モデレート成功= 13199ユーザー、
d)成功= 55100ユーザー
e)信じられない成功=いや

テーブルが SELECT、INSERT、UPDATE & JOIN ステートメントに使用されること、およびこれらのステートメントがシステムにログインしているすべてのユーザーによって毎時/毎日/毎週実行されることを考慮してください (履歴データはオプションではありません)。

質問 1: パフォーマンスがほとんど影響を受けないように、2 番目の量は MySQL エンジンに適していますか?

質問 2: テーブルを InnoDB として設定しましたが、JOINS を使用してすべてのステートメントを処理し、4GB 制限の問題に直面しても構わないと考えているという事実を考えると、InnoDB は有用ですか?

表の概要:
表 #1: ユーザー/イベントの購入。最大 15 列、一部は VARCHAR。
表 2: 購入によるチケット。最大 8 列、TINYINT のみ。主キー INT。各テーブル #1 の挿入で挿入される 4 ~ 15 行。
表 #3: チケット別のアイテム。4 列、TINYINT のみ。主キー INT。テーブル #2 の挿入ごとに 3 行挿入されます。別のテーブルとして保管したいのですが、誰かが死ぬ必要がある場合は...

表 3 が質問の対象です。2 番目の数量に減らす方法は、各テーブル #3 の行をテーブル #2 の列にすることでした。

私がやりたくないことですが、必要に応じて、テーブルを週ごとに分割し、アプリケーションにロジックを追加することです。

すべての回答が役に立ちますが、次のような回答の方がより役に立ちます

ii) 3,375,424,021,158: いいえ、最後の数字は省略します。
iii) 337,542,402,115: いいえ、最後の数字を削除しましょう。「まあ、それは多くの要因に依存します...」のようなものが得られるまで、などです。

「パフォーマンスへの影響が少ない」とは何ですか??? 最大 1,000,000 レコード、クエリの実行に 3 秒もかかりません。33,754,240,211,584 件のレコードに約 10 秒かかるとすれば、それは私にとって素晴らしいことです。

自分でテストしてみませんか?私はそのようなテストを行う能力がないと思います。私がすることは、その量の行を挿入して何が起こるかを見ることです。私は、似たようなことをすでに知っている人の視点を最初に好みます。覚えておいてください、私はまだ設計段階です

前もって感謝します。

4

3 に答える 3

3

54,240,211,584 はたくさんあります。私は 3 億行までの mysql テーブルの経験しかありませんが、ほとんど問題なく処理できます。あなたが実際に何を求めているのかわかりませんが、ここにいくつかのメモがあります:

  • トランザクションのサポートが必要な場合、または多くの挿入/更新を行っている場合は、InnoDB を使用してください。MyISAM テーブルはトランザクション データには適していませんが、非常に読み取り負荷が高く、ときどき一括挿入/更新のみを行う場合は問題ありません。

  • 最近のリリース/最近のオペレーティング システムを使用している場合、mysql には 4Gb の制限はありません。私の最大のテーブルは現在211Gbです。

  • 大きなテーブルのデータのパージは非常に遅くなります。たとえば、1 か月分のすべてのレコードを削除するには、数時間かかります。(ただし、単一のレコードを削除するのは高速です)。

  • 何十億ものレコードが予想される場合は、int/tinyint を使用しないでください。

  • 何かが機能するようになり、最初のリリース後にスケーリングを修正します。実現されていないアイデアはほとんど役に立たず、(今のところ) 機能するものは非常に役立つ可能性があります。

  • テスト。実際の代替品はありません。アプリとデータベースの使用法は、他の誰かの巨大なデータベースとは大きく異なる場合があります。

  • 分割されたテーブルを調べてください。これは MySQL の最近の機能であり、さまざまな方法でスケーリングするのに役立ちます。

于 2010-02-08T22:09:04.883 に答える
1

現在のレベルから始めます。そこから構築します。

あなたが今必要としないサービスをあなたに売る人はたくさんいます。

月額$10の共有ホスティングが機能しなくなった場合は、アップグレードして、最終的に誰かを雇ってDBのレコード制限を回避するのを手伝ってください。

于 2010-02-08T21:53:23.470 に答える
0

4Gbの制限はありませんが、もちろん制限はあります。先のことを計画しないでください。始めたばかりで、次の Facebook になることを計画している場合、それは素晴らしいことですが、リソースがありません。

投資家に見せることができるように、何かを機能させてください:)

于 2010-02-08T22:13:41.893 に答える