問題タブ [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.
mysql - パーティショニング中に外部キーを処理する方法
私はフリート管理に取り組んでいます。次の列を持つロケーションテーブルに大量の書き込みがあります
- 日にち
- 時間
- 車両番号
- 長さ
- 緯度
- 速度
- userid(外部キーです...)
ここでは、このテーブルは3秒ごとに書き込み操作を行います。したがって、その中には何百万ものレコードがあります。したがって、より高速なデータを取得するために、私はパーティションを計画しています。今私の質問:-
- 外部キーの処理方法は?パーティションは外部キーをサポートしていないと聞きました
- パーティションに使用する列。
- パーティション列として一意のキーが必要ですか。
何兆もの記録があります
@rc-ありがとうございます。パフォーマンスに影響があります...3秒ごとにデータを挿入しているので、データを挿入するたびにチェック手順を実行する必要があります...パフォーマンスはどうですか?
2>車両番号としてパーティション列に移動したい.....別の方法はありますか...
oracle - オラクルはインデックスの使用を拒否します
次のようなパーティション分割されたテーブルがあります。
パーティションはTS
列にあります (1 年に 1 つのパーティション)。
タイムスタンプを介して多くの検索を行うため、複合インデックスを作成しました。
クエリは次のようになります。
私も追加しようとしましand t.KEY = '00101'
たが、それは役に立ちません。
しかし、それとEXPLAIN PLAN
言う:TABLE ACCESS
FULL
インデックスについては言及されていません。何が間違っている可能性がありますか?
[編集] 何らかの理由で、オラクルは操作のコストを完全に誤って計算しました。そのテーブルには 1 億 1,200 万行あります。1 つのパーティションのフル スキャンのコストは、600,000 ではなく、2,000 万である必要があります。そのため、オプティマイザのヒントも無視されます。
[EDIT2] テスト中に、この不可解な結果に出くわしました。これを実行するとselect
:
この EXPLAIN PLAN を取得します。
そのため、結果として索引付けされた列に自分自身を制限するとselect
、Oracle は索引を使用することを決定します。すべての列を取得したい場合は、完全なテーブル スキャンを待つ必要があります。何が起きてる?
[EDIT2] 見つけました。以下の私の答えを見てください。
mysql - MYSQL パーティショニングとは?
ドキュメント ( http://dev.mysql.com/doc/refman/5.1/en/partitioning.html ) を読みましたが、それが何であり、なぜ使用されるのか、あなた自身の言葉で知りたいです。
- 主に複数のサーバーで使用されるため、1 つのサーバーを引きずることはありませんか?
- したがって、データの一部は server1 にあり、データの一部は server2 にあります。そして、サーバー 3 はサーバー 1 またはサーバー 2 を「ポイント」します...それはどのように機能しますか?
- MYSQL ドキュメントが同じサーバー内のパーティショニングに焦点を当てているのはなぜですか? 目的がサーバー間での分割である場合は?
mysql - 複数のサーバー間でMysqlを分割する方法は?
水平分割...多くのテーブルを作成できることを知っています。
複数のサーバーでこれをどのように行うことができますか?これにより、Mysqlをスケーリングできます。
Xサーバー上にXテーブルを作成しますか?
誰かが説明したり、複数のサーバー間でパーティションを作成する方法を教える優れた初心者向けチュートリアル(ステップバイステップ)を持っている人はいますか?
sql - T-SQL-パーティション関数とスキームの作成-SQLServer2008
パーティション関数とスキームを作成しています。
SQL Server 2008では、範囲パーティションのみを定義し、リストパーティションは定義しません。
SQL Serverにリストのパーティション分割はありませんか?
SQL Server2008Enterpriseエディションを使用しています。
sql-server - 大規模なデータベーステーブルのSQLServer自動パーティション化
私は数千万行のデータベーステーブルを扱っており(時間の経過とともに数億行になる可能性があります)、行数が増えてもパフォーマンスを安定させるためにデータベースパーティショニングを実装することを検討しています。これが私がやりたいことです:
動物を保管するテーブルがあるとしましょう。フィールドの1つは、AnimalType(つまり、Bird / Fish / Cat / Dog)です。クエリの99%は1つのAnimalTypeにのみ関連し、テーブルにはほぼ同じ量のAnimalType(つまり、1000匹の魚、1000羽の鳥、1000匹の犬)があるため、各AnimalTypeを個別のパーティションにします。パーティションは素晴らしく、均等に分散している必要があります。ただし、動物の種類はたくさんあるので、AnimalTypeごとに数百のパーティションを手動で作成したくないので、新しいAnimalTypeを入力するたびに、新しいパーティションを作成する必要があります。
したがって、私が望むのは、SQLServerにAnimalTypeに基づいてパーティションを作成するように指示する方法です。AnimalType用のパーティションがすでに存在する場合は、そのパーティションを使用します。存在しない場合、SQLServerは自動的に新しいパーティションを作成します。
簡単そうに聞こえますが、これを行う方法を見つけることができないようです。出来ますか?
あるいは、テーブルへのアクセス速度を素晴らしく高速に保つための他の方法は何ですか?古いレコードをHistoryスタイルのテーブルに移動するなど、手動でデータをより多くのテーブルに移動するだけのことは避けたいと思います。クエリで完全なデータセットのデータが必要になる可能性があるため、実際にはそうはなりません。ヘルプ。私はすでにいくつかの基本的なインデックスを持っており、これは非常に役立ちます。
asp.net - パーティションまたは別のテーブル
フリート管理システムのデータベースを設計しています。
n
3秒ごとにレコード数を取得します。明らかに、テーブルに何百万ものレコードがあり、車両の現在の情報をテーブルに保存しcurrent_location
ます。ここでは、パフォーマンスが大きな問題です。
これを解決するために、次の提案を受け取りました。
車両ごとに個別のテーブルを作成します。ここでは、新しいテーブルの作成をクリックするとすぐに、実行時にテーブルが作成されます。特定のテーブルに関連するすべてのデータが挿入され、その特定のテーブルから取得されます。
パーティションに行きます。
これらのソリューションについて、次の質問に答えてください。
両者の違いは何ですか?
どちらが最適で、その理由は?
テーブル内の行数によってパフォーマンスの問題が発生するのはどの時点ですか?
他の解決策はありますか?
さて --- SQL Server 2008 でレンジ パーティションを使用する場合、どうすればよいでしょうか。
varchar(20) を使用して分割します。
車両番号別に仕分けをする予定です。例: MH30 q 1234。mh30 q 1234 としましょう - 30 & q だけが変化します....だから私の質問は、どうすればいいのかです。パーティション関数の書き方を意味します。
***最初に、この質問は私のSQLについて尋ねられました..今はSQLサーバーについてです********申し訳ありませんが、SQLからSQLサーバーに移行しました*****同じ質問で
sql - データベース パーティション関数 (SQL Server 2008)
こんにちは、フリート管理システム用に SQL Server 2008 でパーティションを作成したいと考えています。たとえば、mh-30-q-126、mh-30-a-126、mh-12-fc-126 のような --values (車両番号) をそれぞれのパーティションに移動するように、パーティション関数を作成したいと考えています。それぞれ、q、a、fc のような中間値に基づいて
私の試用機能: -
この関数は、すべての (すべての値) データをパーティション 4 に移動します。
このパーティションは、中央にある値をソートしたいという点で私を満足させません。この関数の書き方
oracle10g - ロギングに使用されるOracleテーブルのパーティション化
テーブルにアクティビティを記録するアプリケーションがあります(Oracle10g)。ロギングレコードは少なくとも30日間保持する必要があります。このテーブルには、毎月約2,000万行が追加されると予想しています。
DBAは、テーブルを1週間のデータを含むパーティションに分割することを提案しました。毎週のメンテナンススクリプトは、最も古いパーティションを削除します(テーブルに4週間のデータのみを残します)。
このロギングテーブルを分割する最良の方法は何でしょうか?
mysql - MySQL のパーティショニング
1 つの大きなテーブルにパーティションを作成しようとしていますが、次のエラーが発生します。
1505 - パーティション化されていないテーブルでのパーティション管理はできません
テーブルを変換するコマンドはありますか? または、新しいものを作成してすべてのデータをインポートする必要がありますか?
Partitioning with Replication を使用する際に問題はありますか?
前もってありがとう、
ペドロ