問題タブ [database-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 投票する
1 に答える
1286 参照

sql-server - 変数値に基づくパーティション テーブル - SQL Server 2008

GETDATE() から 1 か月より前の CreatedDate 列に値を持つすべての行を 1 つのパーティションに配置し、残りを別のパーティションに配置して、最新データの 2 番目のパーティションとアーカイブの 1 番目のパーティションをクエリするように範囲で指定できますか?データ?

0 投票する
1 に答える
4510 参照

mysql - AZによるMySQL5.5パーティションテーブル

MySQL 5.5の時点で、varcharのような非整数値でテーブルを分割できるようになったことを理解しています。単一のvarchar列で多くのルックアップを実行するテーブルがあるので、パフォーマンス上の理由からそのテーブルでパーティションを作成したいと思います。

すべての場合において、列の値は単一のアルファベットの単語です(厳密には小文字のaz、検証によって強制されます)。

私がやりたいのは、格納されている各単語の最初の文字でこのテーブルを分割することです。したがって、「a」で始まるすべての単語は最初のパーティションに入れられ、「b」は2番目のパーティションに入れられます。

私の直感では、おそらくLIKEステートメントを使用するようにcreate / alter tableステートメントを作成できますが、構文についてはよくわかりません。

MySQL 5.5を使用してこのようなことをした人はいますか?

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

mysql - Mysql で LIKE 基準を使用してテーブルを分割する方法

varchar(200) タイプのフィールドの値で分割する大きなテーブルがあります。私はすでにこの質問を読みましたが、フィールドのサイズのため、このソリューションを使用できません。
私の質問は、LIKE 'b%' または LIKE 'o%' などのような Like 基準を使用できますか?
そうでない場合、どうすればこれを解決できますか?

前もって感謝します、
アントニオ

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

oracle - Oracle 11G で最も古いパーティションを自動的に削除する

パーティションが 3 か月以上経過している場合、間隔パーティション テーブルからパーティションを削除する必要があります。

これを行うためのOracleユーティリティ/関数はありますか? そうでない場合、これを実装する方法は?私を案内してください。

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

sql-server-2008 - 数百万のレコードの単一テーブルと複数テーブル

これがシナリオです。古いデータベースにはこの種の設計があります

1998年から2011年までのすべてのデータをこのテーブルdbo.TableAllYearsにマージしました

現在、これらは両方とも「アプリケーション番号」でインデックス付けされており、同じ列数(実際には56列)になっています。

今私が試したとき

最初のクエリの行数は139669行@13秒ですが、2番目のクエリの行数は同じですが@30秒です

だから皆さんにとって、私は何かが足りないのですか、それとも複数のテーブルが単一のテーブルよりも優れていますか?

0 投票する
1 に答える
103 参照

oracle - パーティションのインデックス作成

Oracleのパーティションテーブルのインデックスを削除しましたが、同じインデックスを再作成する方法はありますか?

0 投票する
1 に答える
562 参照

mysql - mysql パーティションの作成中にエラーが発生しました

パーティションを作成しようとすると、このエラーが表示されます。

SQL クエリ:

CREATE TABLE t1( id INT, val INT )PARTITION BY HASH( val )( PARTITION p0 MAX_ROWS =200 MIN_ROWS =10, PARTITION p1 MAX_ROWS =100 MIN_ROWS =20 )

MySQL は次のように述べています。

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PARTITION BY HASH(val) ( PARTITION p0 MAX_ROWS=200 MIN_ROWS=10, PARTITION' at line 2

私を助けてください

0 投票する
1 に答える
435 参照

mysql - mysqlテーブルのパーティショニングとサブパーティショニング

私のテーブル構造は

ソースのサークルとサブパーティションに基づいてこれをパーティション化する必要があります。

円:11個の値のセットから2文字です( "AA"、 "XB"、 "BT" ...)

ソース:「RNE」(サブパーティション1)または「PR」(サブパーティション2)またはその他の文字列(サブパーティション3)のいずれかです。

このパーティショニングを行うにはどうすればよいですか?

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

mysql - MYSQL: 急速に増加するテーブルと速度の低下 (4mio 行) について助けが必要です

急速に成長しているテーブルが速度を上げていくという問題に直面しています (現在 400 万行、1 日 30 万回の挿入)。近い将来にウェブサイトがダウンする前に、セットアップを改善し、箱から最後のビットを絞り出すために、ここでいくつかのアイデアやアドバイスを得られることを願っています.

セットアップ:

テーブル定義:

クエリ:

x1、y1、x2、および y2 の値がクエリごとに変化するという事実を除いて、これが私が実行している唯一のクエリです。これは 2D キャンバスで、各行はキャンバス上の線を表します。1 つのフィールドに選択される最大範囲が 1200 (ピクセル) を超えることはないことを知っておくことも重要だと思います。数週間前、MySQL 5.5.10 にアップグレードし、パーティションの使用を開始しました。'x1 % 10000' hashw は、パーティションのトピックに入る最初の無意識のアプローチです。これで SELECT の速度はかなり向上しましたが、まだ最適化の余地があると確信しています。

ああ、あなたが尋ねる前に... 私は MyISAM テーブルを使用しているという事実を認識しています。私の友人は innoDB を提案しましたが、すでに試してみた結果、テーブルが 2 倍大きくなり、SELECT のパフォーマンスが大幅に低下しました。派手なトランザクションなどは必要ありません...必要なのは、可能な限り最高のSELECTパフォーマンスとINSERTでのまともなパフォーマンスだけです。

何を変えますか?どうにかしてインデックスを微調整できますか? 私のパーティション設定はまったく意味がありますか? おそらくパーティションファイルの数を増やす必要がありますか?

すべての提案は大歓迎です...私は友人とメモリテーブルへのローカルレプリケーションについても話しましたが、テーブルサイズがRAMを超えてスワッピングボックスがかなり醜いものになるまでは時間の問題だと確信しています見る。

私の問題について考えるときは、それが急速かつ予測できないほど大きくなっていることに留意してください。何らかの理由でどこかで話題になった場合、1 日あたり 100 万件以上の INSERTS が表示されると予想しています。

読んで考えて下さりありがとうございます。:)

編集: 要求された EXPLAIN 結果

EDIT2: 要求された my.cnf

innoDB の値は、私の innoDB の試行用です...もう必要ないと思います。このサーバーは他に 4 つの Web サイトも実行していますが、それらはかなり小さく、言及する価値はありません。とにかく、このプロジェクトをすぐに専用のボックスに移動します。あなたのアイデアは急進的かもしれません - 私は実験を気にしません.

EDIT3 - インデックス付きのベンチマーク

わかりました...さまざまなインデックスでいくつかのベンチマークを作成しましたが、これまでのところ結果はかなり良好です。このベンチマークでは、2000x2000 ピクセルのボックス内のすべての行を選択しました。

上記のテーブル/インデックス定義を使用すると、平均クエリ時間は1740ms でした。

次に、主キーを除くすべてのインデックスを削除しました-> 1900ms

x1 のインデックスを 1 つ追加 -> 1800ms

y1 に 1 つのインデックスを追加 -> 1700ms

x2 のインデックスを 1 つ追加 -> 1500ms

y2 のインデックスを 1 つ追加 -> 900ms!

これまでのところ、これは非常に驚くべきことです...何らかの理由で、x1/y1とx2/y2の結合インデックスを作成することは何とか理にかなっていると思っていましたが、実際には間違っていたようです。

EXPLAIN は次のように返します。

なぜ4つすべてではなくy1/y2をキーとして使用しているのか疑問に思っていますか?

ただし、特にパーティションと適切なハッシュに関して、さらに多くのアイデアとアドバイスを探しています。

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

mysql - 日時列でテーブルを分割する方法は?

datetime 列で mysql テーブルを分割したいと考えています。ある日パーティション。テーブル作成スクリプトは次のようになります。

しかし、ある日のデータを選択すると、パーティションが見つかりませんでした。選択ステートメントは次のようになります。

別のステートメントを使用すると、パーティションを見つけることができましたが、ある日のデータを選択できませんでした。

ある日のデータを選択してパーティションを利用する方法を教えてくれる人はいますか?ありがとう!