問題タブ [partitioning]

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.

0 投票する
4 に答える
2212 参照

database - アプリケーション ユーザーの属性に従ってデータベース アクセスを制限またはフィルター処理する方法

私はこれについて考えすぎましたが、明らかに正しい解決策はありません。これはまさに木には木が必要な状況かもしれないので、stackoverflow の助けが必要です。

地域ベースでデータベース フィルタリングを適用しようとしています。私のシステムにはさまざまなユーザーがいて、それぞれが地域オフィスに割り当てられています。ユーザーが地域のオフィスに関連付けられているデータのみを表示できるようにしたい。

簡単に言えば、私のアプリケーションは次のとおりです。Java App -> JPA (hibernate) -> MySQL

データベースにはすべての地域のオブジェクトが含まれていますが、ユーザーが自分の地域のオブジェクトを操作できるようにしたいだけです。私はそれを行う次の方法について考えました:

1) すべてのデータベース クエリを変更して、select * from tablex where region="myregion" のように読み取るようにします。これは厄介です。JPA ではうまく機能しません。たとえば、entitymanager.find() メソッドは主キーしか受け入れません。もちろん、ネイティブに移行することもできますが、select ステートメントを 1 つ見逃すだけで、セキュリティが失われます。

2) mysql プロキシを使用して結果をフィルタリングします。ちょっとファンキーですが、mysql プロキシは生の呼び出しを見るだけで、それらをどのようにフィルタリングする必要があるか (つまり、この要求を行ったユーザーがどの地域に属しているか) を本当に知りません。わかりました、各リージョンのプロキシを開始できましたが、少し面倒になり始めました..

3) リージョンごとに個別のスキーマを使用します。ええ、簡単です。私は春を使用しているので、RoutingDataSource を使用して、正しいデータソース (スキーマごとに 1 つのデータソース) を介してリクエストをルーティングできます。もちろん、現在の問題は、地域やその他のカテゴリでフィルタリングしたいということです。おっと。

4) ACL - これについてはよくわかりません。select * from tablex; を実行した場合。アクセスできないオブジェクトを静かに除外しますか、それとも大量のアクセス例外がスローされますか?

しかし、私はこれについて考えすぎていますか?これは本当によくある問題のようです。私が愚かすぎて見ることができない簡単な解決策があるに違いありません。できるだけソースに近いものをフィルタリングしたいので、/ またはデータベースに近いものになると確信していますが、何ですか?

ネタバレではありません - リンク、キーワード、アイデア、商用/オープンソース製品の提案をいただければ幸いです!! ありがとう。

0 投票する
2 に答える
1402 参照

mysql - mysql クラスタのディスク ベースのストレージ

MySQL Cluster でディスク ベースのテーブルを使用してテーブル パーティショニングを実行できるかどうかを調べようとしています。大きなテーブルをディスクに保存し、そのテーブルで範囲分割を行いたいと考えています。答えはノーだと感じています。

提供できる情報をありがとう。

マイク。

0 投票する
2 に答える
5586 参照

sql-server - SQL Server 2005 でパーティション テーブルを変更できますか?

時系列データを含むテーブルの水平分割を検討しています。2000 年よりも 2005 年の方がパーティショニングがはるかに簡単であることを発見しましたが、この答えが見つからないようです。

分割されたテーブルの列を追加/削除できますか?

パーティション化されているため、特別な手順が必要ですか?

0 投票する
4 に答える
404 参照

sql-server - 1 秒間に 1000 レコードを格納する場合に SQL サーバーのパーティショニングを使用する

私はあなたの記事を読みました (SQL Server パーティショニング: すべてに対する答えではありません)。私のケースでパーティショニングを使用することに驚くかどうかはわかりませんが、1 秒あたり約 1000 レコードを保存する必要があります。このデータはモバイル ノードの位置に関するものであり、これらのデータが私のデータベースを作成します。大きすぎるので、データベースを分割する必要があると思いますか?

0 投票する
3 に答える
2259 参照

sql-server - SQL Server 2005 のパーティション関数

ここからパーティション関数についてのMSDNでは、$PARTITION(Transact-SQL) .

以下のサンプルが根本的に何をしているのか混乱しています。私の理解では、この SQL ステートメントはテーブル Production.TransactionHistory のすべての行を反復し、同じパーティションにマッピングされるすべての行に対して、$PARTITION.TransactionRangePF1(TransactionDate) は同じ値、つまりすべてのパーティション番号を返します。そのような行。したがって、たとえば、パーティション 1 のすべての行は、$PARTITION.TransactionRangePF1(TransactionDate) の値がすべて同じであるため、結果を返すのに 1 つの行になります。私の理解は正しいですか?

0 投票する
2 に答える
536 参照

webserver - Web サイトのパーティショニングと URL スペース

私のウェブサイトは成長しています。すべての機能を単一のサーバー コピーで実行するのではなく、機能セットを異なるサーバー グループに分割する必要があります。Windows ネットワーク負荷分散セットアップに 8 つの同一のサーバーがあります。

問題は、URL スペースを同じに保つ必要があることです。実行可能な解決策は何ですか?機能セットのために新しいドメインを開始したくありません。URL ベースの書き換え/ルーティング機能 (?!?) を備えたある種のリバース プロキシを考えています。ソフトウェアまたはハードウェアに関する推奨事項はありますか? これは、必要な機能を備えていないため、WNLB セットアップを置き換える予定です。

0 投票する
4 に答える
2901 参照

debian - 専用サーバーのハードドライブを分割することは理にかなっていますか?

新しい専用サーバーに Debian をインストールする予定で、ハード ドライブのパーティションを設定する機会があります。

サーバーには、RAID 1 として構成された 2 つの 750 GB ドライブがあります。各データベースが約 2 GB になる 10 個の Postgresql データベースを用意します。もちろん、このサーバーにも Apache/PHP があります。このサーバーは、独自の Web アプリケーションにのみ使用します。

ホスティング会社は、2 つのパーティションを別々に作成することを強く推奨しています。最初は「/」用の小さいもので、2 番目は「/home」用の非常に大きいものです。しかし、これにはいくつか疑問があります。「/」ディレクトリの 1 つの大きなパーティションで十分だと感じています。この質問への回答は、ディスクを複数のパーティションに分割する意味がないことも示唆しています。

このような場合でも、ディスクのパーティショニングは有効ですか?

0 投票する
3 に答える
2658 参照

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 のみをターゲットとするクエリにも使用されることに注意してください。

0 投票する
9 に答える
697 参照

sql - インデックスはSQLを吸い込みますか?

多数の行を含むテーブルがあり、インデックスを作成する列の1つに20の値の1つを含めることができるとします。列にインデックスを付けるとしたら、それは大きくなりますか?

もしそうなら、なぜですか?データを20個のテーブル(列の値ごとに1つ)に分割すると、インデックスサイズは簡単になりますが、インデックスの効果は同じになります。