問題タブ [large-data-volumes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 巨大なデータセット (7.300.000.000 行と約 80 GB のデータ) のパーティショニングを備えた効率的な MySQL スキーマ
これは、「効率的に 7.300.000.000 行を格納する」(効率的に 7.300.000.000 行を格納する) という私の質問へのフォローアップです。
パーティショニングで MySQL を使用することにしました。予備のスキーマは次のようになります。
これは与える:
- 行 = 7.300.000.000 行 (前の投稿に記載されている要件による)
- サイズ/行 = 11 バイト (3+2+3+3)
- 合計サイズ = 7.300.000.000 行 * 11 バイト = 80.300.000.000 バイト = 80.3 GB
- パーティション = 25 (3.2 GB/パーティション、パーティション サイズは多少任意)
「id」列は使用されないため、元の設計から主キーを削除したことに注意してください。
さて、私の質問ですが、前回の投稿で概説した要件と上記のスキーマを考慮して、さらに最適化/調整できる提案はありますか? または、MySQL を使用することにした場合、上記のスキーマは「最適」ですか?
更新:現在のデータ セットを上記のスキーマにロードしようとしましたが、8.570.532 行で 212.000.000 バイト相当のディスク領域が必要になり、1 行あたり約 24.7 バイトになります。
更新: entity_id+date_id をカバーするインデックスは、entity_id のみをターゲットとするクエリにも使用されることに注意してください。
c# - 大規模なデータセット (SQL から C#)、長い読み込み時間の修正
私が構築しているサイトがあります。これは、いくつかのユーザー設定に基づいて (多かれ少なかれ...) 差し込み印刷を作成するアプリケーションです。デカルト結合に相当するデータを問題なく生成できますが、企業のニーズにより、生活を少し難しくする必要があります...
リモートの従業員の郵便番号を確認した後、その従業員からメディア ターゲットまでの距離に基づいて、メディア ターゲットへの電子メールを作成するアプリケーションを作成する必要があります。たとえば、従業員がよく知られているボランティアであるとしましょう。企業は、これらの従業員の半径 5 マイル以内にいるメディアに、従業員が行っている仕事に関するメッセージを電子メールで送信したいと考えています。ここで問題が発生します...ここにはいくつかの選択肢があります。試行と失敗の概要を説明します。
最大半径は 20 マイルです。米国内のすべての郵便番号のレコードを保持するデータベース テーブルを作成し、その郵便番号から 20 マイル以内のすべての郵便番号に結合します。データセットは次のようになります (名前は異なりますが、これは引数のためです)
。[都市] | 【状態】 | [閉じる] | [都市] | 【状態】 | [距離]
失敗: 例として、NY には上記のデータセットから 350,000 のレコードがあります (他の州はもっと悪いです!)。そのページの平均読み込み時間は? 6分... 起きていません。ブレークポイントを設定してこれを確認しました。切断が発生するのは dataadapter.fill() 段階です。(これはロジスティクスの問題により実装されませんでした) x 以下の距離で、各従業員 zip からメディア ターゲット zip へのデータベース接続を作成します。ただし、ソース ファイルとメディア ターゲットを組み合わせると、個別化された 34,000 通以上のメールに到達できます。34k DB 接続? 郵便番号検索を再利用する方法を考案できたとしても、DB でいくつかのテスト チェックを行ったところ、従業員が働いていた NY には 500 の異なる郵便番号があることがわかりました。500デシベル接続?それがうまくいくとは思えませんが、驚くかもしれません。
この問題を回避するための私の最新のスキームは、次のような新しいデータセットを取得することにより、.net データセット オブジェクトよりも Web サーバーがより良いゲームを実行することを期待することです
。[経度] | [緯度]
次に、データが機能するかどうかを判断するために距離式を実行します。これは、Web サーバーのプロセッサに大きく依存しています。これは賭けに値するか、それともこの試行でも同じロード時間のダメージを見つけることができますか?より良い方法はありますか?
このプロジェクトがうまくいかないかもしれないという私の懸念を確認したとしても、どんな意見でも感謝します。
追加メモ: サーバーを制御できず、SQL2k を実行しています :(。Visual Studio 2005、フレームワーク 2.0 でサイトをプログラミングしています。ただし、今後数か月以内に SQL2005 および VS2008 にアップグレードされる可能性があります。
sql - 2^32 では不十分な場合はどうなりますか?
テーブルに非常に多くのエントリがあり、特定の期間 (日、週、月、...) 内の auto_increment ID に 2^32 では不十分な場合はどうなりますか?
MySQL が提供する最大のデータ型では不十分な場合はどうなりますか?
一意の ID を必要とする非常に多くのエントリがテーブルに追加されている状況をどのように解決すればよいでしょうか?
MySQL (またはその他のシステム) 内でネイティブに、無制限の数の一意の ID を達成するか、少なくとも指数関数的に増やすにはどうすればよいでしょうか?
理想的には、次のようなものを期待します
これにより、エントリの量が指数関数的に増加します。
そのような状況にどのように対処しますか?
覚えておいてください - 要件は、すべてのエントリに対して一意の ID を持つことです。
sql - 数百万行の4つのテーブル間の結合を伴うSQLクエリ
それぞれ数百万行の 4 つのテーブルをクエリするトランザクション SQL ステートメントがあります。
TuningAdvisor に従ってインデックスと統計を使用して最適化されていますが、数分かかります。
クエリの構造は次のようになります。
@real
各トランザクション テーブルには数百万行が含まれているため、@budget
、 、 などのテーブル変数を使用してトランザクション テーブルごとに 1 つのクエリに分割し、@hours
これらを final に結合することを検討しますSELECT
。しかし、テストでは、速度が向上しないようです。
それをスピードアップするためにどのように対処しますか?
mysql - MySQL集約クエリの最適化
MySQLには、ファイルに関する情報を含む非常に大きなテーブル(〜1億レコード)があります。情報の1つは、各ファイルの変更日です。
指定した日付範囲に収まるファイルの数をカウントするクエリを作成する必要があります。そのために、これらの範囲(すべて日単位)を指定する小さなテーブルを作成しました。これは次のようになります。
そして、次のようなクエリを作成しました。
ただし、予想どおり、このクエリの実行には永遠に時間がかかります。これは、MySQLにHugeFileTableを5回実行するように要求しているためだと思います。そのたびに、各ファイルに対してDATEDIFF()計算を実行します。
代わりに、HugeFileTableレコードをレコードごとに1回だけ調べ、ファイルごとに適切なrange_nameの現在の合計でカウントをインクリメントします。どうすればいいのかわからない…。
誰かがこれを手伝うことができますか?
ありがとう。
編集:MySQLバージョン:5.0.45、テーブルはMyISAMです
EDIT2:コメントで求められた説明は次のとおりです
plsql - PL/SQL を使用して、クライアント側のコードに大量のデータを送信するための適切なオプションは何ですか?
PL/SQL を使用して、クライアント側のコードに大量のデータを送信するための適切なオプションは何ですか?
詳しく説明すると、サーバー側の PL/SQL はリクエストを処理し、クライアント側のコードに送信する必要がある大量のデータを含む応答を生成します。大量のデータを送信するための「適切なオプション」はありますか? ここで考慮すべき重要なオラクルの長所と短所は何ですか?
database - 「大規模な」データセットはいくつですか?
サイズ/ボリューム/物理 (メトリックス、ギガバイト/テラバイト) が要素とそのラベルの数だけに関係しない無限のストレージを想定すると、統計的にパターンは 30 のサブセットですでに出現するはずですが、1000 未満のサブセットでは少なすぎることに同意できますか?テストする必要があり、少なくとも 10000 個の個別のサブセット / 「要素」、「エントリ」 / エンティティが「大きなデータ セット」です。それとももっと大きい?ありがとう
c# - C# チャート作成 - Reasonble の大規模データ セットとリアルタイム
比較的大きなデータセットを処理でき、グラフのレンダリングと更新に関して適度にスケーラブルな、商用またはオープンソースの C# WinForms グラフ作成コンポーネントを探しています。表示されるデータ セットの数は約 30 です。各データ セットは 1 秒あたり 15 ~ 20 回更新されます。これには、折れ線グラフ コンポーネントが必要です。
c - argv を変更することは可能ですか、それとも調整したコピーを作成する必要がありますか?
私のアプリケーションには膨大な数の引数が渡される可能性があり、フィルター処理されたリストに引数を複製するヒットのメモリを回避したいと考えています。それらをその場でフィルタリングしたいのですが、argv配列自体、またはそれが指すデータをいじることはおそらくお勧めできません。助言がありますか?