問題タブ [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.
mysql - mysql パーティショニング
列名 YEAR と列名 MONTH で分割したいと思います。YEARのLISTとMONTHのSUB PARTITIONを別のリストで使うと良さそうでした。
サブパーティション部分の構文は何ですか?
リストを別のリストでサブパーティション化することは可能ですか?
または、別のパーティショニング スキームを使用する必要がありますか?
mysql - mysql データベースの自動パーティショニング
重複の可能性:
mysql データベースの自動パーティショニング
これは、質問hereの正確な複製です。残念ながら、その質問は、機能しなくなったサイトへのリンクを投稿した人によってのみ回答されたので、誰かが解決策を見つけることができる場所に再投稿してくれることを願っています。
とにかく、問題は、mysql データベース パーティションを自動的に更新するにはどうすればよいかということです。たとえば、「今月」、「先月」、「過去」を表す 3 つのパーティションが必要な場合、どうすればよいでしょうか。
パーティションの作成方法はわかりますが、今月が次の月に切り替わったときに、パーティションを自動的に変更する必要があります。たとえば、今日が 11 月 29 日の場合、3 つのパーティションには 11 月、10 月、およびそれより前の日付のデータが含まれているはずです。それから 1 日後の 12 月 1 日に、3 つのパーティションを 12 月、11 月、そしてさらにさかのぼります。
他の質問には受け入れられた回答があったので、これは可能だと思いますが、どうすればよいですか?
mysql - 履歴/監査テーブルの設計に関する推奨事項
多くのアイテムとその状態を常に追跡する必要があります。
例
現在、これは巨大なテーブルであり、MySQLの疑似ランク関数を使用してクエリを実行します。
ただし、非常に遅いです。特定のアイテムについては、フィルタリングを実行する前にランク= 1のアイテムを見つける必要があるため、クエリはインデックスを利用できません。
そのような機能を実装した経験は何ですか?あなたがお勧めするデータベース設計は何ですか?OracleやT-SQL対応のDBのようなデータベースは、パーティション化されたクエリをサポートしているため、はるかに優れていますか?
アイデアをよろしくお願いします!
database-design - インデックスを作成するには列が多すぎます-mySQLパーティションを使用しますか?
すべて検索可能な20以上の列を持つテーブルを持つアプリケーションがあります。これらすべての列のインデックスを作成すると、書き込みクエリが非常に遅くなります。また、実際に役立つインデックスは、多くの場合、複数の列にまたがる必要があり、必要なインデックスの数が増えます。
ただし、これらの検索の95%については、これらの行のごく一部のみを検索する必要があり、非常に少数(たとえば、50,000行)です。
そのため、mySQLパーティションテーブルの使用を検討しました。基本的isActive
に、2つのパーティションを分割する列があります。ほとんどの検索クエリは。で実行されisActive=1
ます。その場合、ほとんどのクエリは50,000行の小さなパーティションに対して実行され、他のインデックスがなくても迅速に実行されます。
唯一の問題は、isActive=1
修正されていない行です。つまり、行の日付やそのように修正されたものに基づいていません。isActive
その行のデータの使用に基づいて更新する必要があります。私が理解しているように、それは問題ではありません。データは、UPDATEクエリ中に1つのパーティションから別のパーティションに移動されるだけです。
しかし、私たちはPK
そのid
列に賛成です。これが問題かどうかはわかりません。マニュアルは、パーティションが主キーに基づいている必要があることを示唆しているように見えました。主キーIDには行かどうかの根拠がないため、これは私たちにとって大きな問題になりますisActive
。
sql - データを仮想的に表示するためのSQLコンプレックスビュー
次の表の表があります。
したがって、これは、数量に変化がある時間の一部に対する在庫を示しています。ここでの私の要件は、このテーブルにデータを仮想的に表示するビューを作成することです(在庫が特定の時間停止していない場合)。したがって、表示する必要のあるデータは次のとおりです。
つまり、データが特定の1時間存在しない場合でも、在庫がある最後の1時間の在庫を表示する必要があります。そして、私は列に1から23までのすべての利用可能な時間を含む別のテーブルを持っています。
以下の方法でパーティションオーバーを試みました。しかし、私は私の要件を達成するためにこれの周りにいくつかのことが欠けていると思います。
このクエリは、データのない時間について、在庫のあるすべての時間をnullとして与えています。Teradataなどのデータベースで使用できるようにANSISQLソリューションを検討しています。
パーティションを間違って使用していると思いますが、他の方法はありますか。CASE WHENで試してみましたが、在庫を1時間確認するには、何らかのループが必要です。
performance - SQLServerパーティションテーブルのパフォーマンス
SQL Server2008Enterpriseを使用しています。私は2000年から2010年までの年間顧客データを持っており、2000年から2009年までは読み取りのみが必要であり、2010年には読み取りと書き込みの両方が必要です。
したがって、この要件と使用シナリオにより、SQLServerパーティションテーブルの使用を考えるようになります。しかし、パーティションテーブルのパフォーマンスが、毎年1つのテーブル(同じスキーマ)を使用するよりも優れているかどうかはわかりませんか?軽量のソリューション(つまり、毎年1つのテーブルを自家製)を使用すると、パーティションテーブルを使用するよりもパフォーマンスが向上するのではないかと思います。
ところで:毎年、約10万行あります。ハードディスクドライブは1台しかありません。また、パーティションテーブルとパーティションビューの違いについても疑問に思っています。
よろしくお願いします、ジョージ
mysql - データベースのパーティショニングの説明
データベースのパーティショニングについて読んだばかりですが、まだ混乱しています。ですから、データベースのパーティション化の背後にあるディスクストレージ(データファイル、インデックスファイルなど)に関して何が変更されたか、長所と短所について説明してください。私は innodb を使用した MySQL を好みますが、比較のために別のデータベースを使用することを歓迎します。
sql - Mysql は SELECT 速度を向上させます
私は現在、MySQL テーブルの SELECTS の速度を改善しようとしていますが、それを改善する方法についての提案をいただければ幸いです。
テーブルには 3 億件を超えるレコードがあり、テーブルにはタグ、日付、値の構造があります。主キーは、タグと日付を組み合わせたキーです。テーブルには、約 600 個の一意のタグの情報が含まれています。ほとんどのタグには平均で約 400,000 行が含まれていますが、2,000 行から 1,100 万行を超える行の範囲に及ぶ場合があります。
テーブルに対して実行されるクエリは次のとおりです。
....そして、INSERTSがあったとしてもごくわずかです。
タグごとにデータをさまざまな数のパーティションに分割しようとしましたが、速度はほとんど向上していないようです。
sql - 非パーティションテーブルのパーティションインデックス
パーティション関数とスキームが使用可能であるにもかかわらず、パーティション化されていないテーブルにパーティション化インデックスを作成する方法。それは私がどこかで読んだ演習であり、実際の問題ではありません
考えていた
しかし、テーブルはパーティション化されていないので、テーブルをパーティション化せずにインデックスを作成するにはどうすればよいですか?
sql - テーブルを分割するときの経験則
テーブルのパーティション分割に関する多くのエントリを見てきましたが、いつパーティションを作成すべきかについての情報はあまりありません。
SQLServerでテーブルをパーティション分割する必要がある場合の経験則はありますか。
ありがとう