Mysql-高度な特性

2411 ワード

パーティション表
ユーザにとってパーティションテーブルは独立した論理テーブルであるが、下位層は複数の物理ワードテーブルからなり、パーティションを実現するコードは実際には下位層テーブルのセットへの参照のパッケージである.MySQLでは、下位のテーブルをカプセル化することで、グローバルインデックスがないため、パーティションは関連データを一緒に保存でき、一括削除が簡単になります.適用シーン:
  • 表は大きくてメモリに全部入れられないか、一部のホットスポットデータ、その他の履歴データしかありません.
  • パーティション化操作により、パーティション全体をクリアできるなど、メンテナンスが容易になります.
  • データは異なる物理デバイスに分布し、効率的に利用される.
  • InnoDBの単一インデックス反発アクセス
  • のような特殊なボトルネックを回避する.
  • は、独立したパーティションをバックアップおよびリカバリできます.欠陥:
  • テーブルには、最大1024パーティションしかありません.
  • 外部キーは使用できません.プライマリ・キーと一意のインデックス・カラムが含まれている必要があります.
  • パーティション式は整数であるか、整数を返す式の動作原理である必要があります.削除変更を実行する必要がある場合、パーティション層はまずすべての下位テーブルを開き、ロックし、パーティションを決定し、操作を実行します.MySQLは複数のパーティションをサポートしています.最も多くのパーティションは、範囲に基づいてパーティション化されます.つまり、各パーティションは、ある範囲に格納されたレコードです.

  • 需要:非常に大きなテーブルから一定期間のレコードがクエリーされ、テーブルには数年の履歴データが含まれ、データは時間順にソートされます.データ量が大きいため、クエリーごとに全テーブルをスキャンすることは不可能です.インデックスの空間とメンテナンス上の消費のため、インデックスを使用することを望んでいません.使用しても何千ものランダムI/Oが発生し、プログラムが硬直します.つまり、B-Treeインデックスは機能しません.ビッグデータ量の拡張性を確保するためのポリシー:
  • 単純なパーティション方式でテーブルを格納し、インデックスを一切使用せず、パーティションのルールに基づいて必要なデータ位置をほぼ位置決めし、where条件を使用して少数のパーティションにデータを制限し、効率を高める.
  • データホットスポットパーティションで、インデックスを使用します.データに明らかなホットスポットがある場合は、このセクションを個別にパーティションとして使用し、メモリにキャッシュする機会があります.注意事項
  • NULL値はパーティションフィルタリングを無効にします.カラムベースの関数ではなく、カラム自体を直接使用してパーティション化できます.
  • パーティション列とインデックス列が一致しない-a列のインデックスのように、b列パーティション
  • に基づいて
  • はオーバーヘッドが大きく、すべての下位テーブル
  • を開いてロックします.
    表示
    ビュー自体は仮想テーブルであり、データは他のテーブルから生成され、ビューを定義してビューを作成することもできます.
    create view test-view as
    select * from tab 
    with check option

    直接使用:
    select * from test-view

    アルゴリズム実装、MySQLは2つのアルゴリズムを使用する:マージアルゴリズム(merge)テンポラリテーブルアルゴリズム(temptable)、
    ないぶきおくコード
  • フリップフロップ
  • ストレージプロセス
  • 関数
  • イベント
  • カーソル文字セットおよび校正全文インデックスクエリキャッシュ
  • サーバ構成の最適化
  • プロファイルは、一般に/etc/myである.cnfまたは/etc/mysql/my.cnfは、複数の部分に分けられ、各部分の名前は最初に括弧で囲まれ、サーバは通常mysqlというセグメントを読み出す.