どのようなデータベースのサブベースのサブテーブルは、どのような状況でサブベースのサブテーブルを使用する必要があります。
データ量が多く、テーブルへの分割が必要な場合とは?
データベースへの問い合わせを効率的に行うため、一定のデータ量に達した時点でテーブルを分割することが推奨されます。
1. オラクル
oracleの単一テーブルが2000万行以上のデータである場合、水平分割を推奨します。
2. mysql
mysqlで1つのテーブルに1000万行以上のデータがある場合、水平分割を推奨します。
1000W以上への単一のテーブルの容量は基本的に少し複雑なSQLは慎重に最適化する必要があり、この時間は、SQLの時間消費は、主にディスクIOに集中し、データコマンドキャッシュの確率は、要するに、よくない、それは通常のインターネットプロジェクト、事前分割ライブラリ分割テーブル、初期段階で最初に行うことができる場合、後でデータ移行物に対処する多くの時間を保存します、データ操作がより頻繁にされています。このような順序のテーブルとして、挿入と更新操作を伴う可能性があります大規模な同時実行、この時点で、唯一のライブラリ、ディスクIOとmysqlのパフォーマンスは、ライブラリやテーブル、テーブルと基本情報テーブル別処理、単一のデータベースへの圧力を減らすの頻繁な操作を分割するようにテストされている場合は特に読み取りと書き込み他の基本情報に影響を与えないようにしながら
サーバーが1つだけの場合、多くのselectがある場合、更新と削除は、これらのselectアクセスのデータによってブロックされ、selectの終了を待って、同時実行性能は高くはありません、あなたは、読み書き分離を選択する必要があり、マスターライブラリは、書き込みと読み取りを担当するスレーブライブラリです \color{#FF0000}{master library responsible for writing, slave library responsible for reading}master library responsible for writing, slave library is responsible for reading.
詳細はデータベースサーバーの構成やアーキテクチャに関するもので、あくまで参考です
3. sqlserver
sqlserverは一般的に、テーブルの分割操作を選択するために以下の条件を備えています。
1. テーブルのサイズが2GB以上である。
2、テーブルには過去のデータが含まれており、新しいデータはすべての新しいパーティションに追加されます。
テーブルのデータ量が数千万になると、1回のクエリーに多くの時間を消費するため、ある程度のデータ量になると、テーブルを水平方向に切断する必要がある。テーブルの水平分割とは、テーブルを論理的に分割し、物理的に指定したルールに従ってファイルを分割し、大きなデータファイルを複数の小さなファイルに分割し、さらにそれらの小さなファイルを異なるディスクの下に置くことである。このように大きなファイルを複数の小さなファイルに分割することで、データの管理が容易になる。
スプリットライブラリ、スプリットテーブルとは?
1. スプリットテーブルとは何ですか?
その名の通り、1つのライブラリに保存されているデータが複数のライブラリに分散され、1つのテーブルに保存されているデータが複数のテーブルに分散されます。
2. ライブラリとテーブルを分割する必要があるのはどんなとき?
データベースが作成されると、時間の経過と業務量の増加により、データベースのテーブルと表のデータ量が多くなり、2つのデメリットが発生することがあります。(1)データベースの記憶資源は限られており、その負荷容量も限られている、大量のデータの蓄積は、確かにデータを処理する能力につながる、(2)データが多ければ多いほど、データの追加、削除、およびチェックが行われます。(2)データが多いほど、データの追加、削除、チェックのオーバーヘッドが大きくなるため、上記2つの状況が発生した場合、ライブラリとテーブルを分割することが必須となる。
3. テーブルとライブラリの分割方法
(1) 垂直方向のスライス
活用シーン:テーブル数が多くデータが大きい場合、同一ライブラリ(サブリポジトリ)内の密接にリンクしたテーブルを機能別にスライスして利用する。
テーブルのフィールドが多すぎる場合、列を起点としてフィールドを分割する(テーブルを分割する)ことができる。
(2)水平方向のスライス・アンド・ダイス
(a) シナリオ:テーブルのデータが大きすぎる場合、水平スライスを使用して、いくつかの合意されたルールに従って、データを異なるデータベースにスライスすることができます。
現在のデータベースに基づいて適切な選択をする必要がありますが、2つのシナリオを組み合わせることも可能です。
4. ルックアップを組み合わせるには?
ライブラリとテーブルを分割した結果、データが散乱し、問い合わせが悪くなるため、主に2つの方法で問い合わせを行います。
(1)、ステップバイステップクエリ:まずメインテーブルを調べ、次に関連テーブルのIDを取得し、関連データを取得するリクエストを開始します。
(2), Joint lookup: 複数のクエリーリクエストを同時に起動し、その結果をすべて集約する。
この記事は、データベースのサブバンクとサブテーブルとは何か、どのような状況でサブバンクとサブテーブルを使用する必要があるかについて、ここで導入され、より関連するデータベースのサブバンクとサブテーブルの内容は、スクリプトハウスの過去の記事を検索するか、次の関連記事を閲覧し続け、あなたが将来的に多くのスクリプトハウスをサポートしています願っています
関連
-
Navicat 15アクティベーションチュートリアル
-
QtによるOpenGaussデータベースへの接続の詳細チュートリアル
-
JMeterデータベースクエリ操作手順詳細説明
-
データベースキャッシュの最終的な整合性に関する4つのオプション
-
データベース管理ツール「Navicat」と「DBeaver」を一挙に読む
-
Navicat Premiumを使用して、データベースのテーブル構造情報をExcelにエクスポートする方法
-
データベースクエリタイムアウト最適化問題の実践記録
-
タイプインジェクションとコミットインジェクションのSQLインジェクションチュートリアル
-
高額で無料のSQL開発ツール「Beekeeper Studio」解説
-
SQLインジェクションについて詳しく話すいくつかの散在する知識のポイント
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
テーブル変数によるSQL実行効率低下の記録
-
ツリー構造データベースのテーブルのスキーマ設計のための2つのオプション
-
DataGrip データエクスポート/インポート実装例
-
JetBrains DataGripのインストールと使用に関する詳細なチュートリアル
-
Navicat for SQLite インストールチュートリアル(インストールキット付き
-
SQL実行エンジンを自作する方法
-
Navicat for Mac システムチュートリアルのインストールと使用方法
-
外部キーの関連付けを行う SQL 文の完全な例
-
SQLリレーショナルモデルの知識まとめ
-
SQLにおけるwhereとhavingの違いについて解説します