ホームページ > データベース > mysql チュートリアル > mysqlの大きなテーブルとは何ですか?大したこととは何ですか?どうやって対処すればいいのでしょうか?

mysqlの大きなテーブルとは何ですか?大したこととは何ですか?どうやって対処すればいいのでしょうか?

不言
リリース: 2018-09-17 17:35:55
オリジナル
4139 人が閲覧しました

この記事の内容は、mysql の大きなテーブルとは何ですか?大したこととは何ですか?どうやって対処すればいいのでしょうか?困っている友人は参考にしていただければ幸いです。

序文

相対的に言えば、データベース テーブルはどのような状況で「大きなテーブル」と言えるのでしょうか?

  • テーブル内のデータが数千万行を超えると、データベースに影響を及ぼします

  • テーブル データ ファイルが巨大なテーブル データ ファイルは 10G を超えています (データ値はハードウェアに関連しています)

大きなテーブルの影響

大きなテーブルがクエリに及ぼす影響

クエリが遅い: 一定時間内にフィルタリングするのが難しい 必要なデータを取得する
(例: 表示順序、ソースが少ない、微分性が低い、ディスク IO が多い、ディスク効率が低下、クエリが遅い)

大きなテーブルが DDL 操作に与える影響

1。インデックスの作成に時間がかかります。長期的なリスク:

MYSQL バージョン 5.5 未満では、作成時にテーブルがロックされます。インデックス

MYSQLバージョン>= 5.5 テーブルはロックされませんが、マスター/スレーブ遅延が発生します

#2。テーブル構造を変更するには、長時間テーブルをロックする必要があります
##。 # リスク:

マスターとスレーブの遅延が長くなります

通常のデータ操作に影響します

対処方法 データベース内の大きなテーブル

1。大きなテーブルを複数の小さなテーブルに分割する
難易度:

分割テーブルの主キーの選択

テーブル分割後のパーティション間データのクエリと統計

2.

利点:


フロントエンドとバックエンドのビジネスへの影響を軽減

難点:


アーカイブ時間 ポイントの選択

実行方法アーカイブ操作

トランザクションとは何ですか?


#トランザクションは、データベース システムを他のすべてのファイル システムから区別する重要な機能の 1 つです。

  • トランザクションは、アトミック SQL ステートメントのセットです。または、独立した作業単位

  • トランザクション要件は、アトミック性、一貫性、分離性、耐久性を遵守します

    トランザクションのアトミック性

    トランザクションは最小の作業単位を考慮する必要があります。トランザクション全体のすべての操作が成功するか、すべてが失敗するかのどちらかです。トランザクションの一部のみを実行することはできません。
例:

1. 財務管理口座の残高が 2,000 元を超えているかどうかを確認します。

2 財務管理口座の残高から 2,000 元を差し引きます。アクティブな預金口座 2000 元

トランザクション全体のすべての操作が正常に送信されるか、すべての操作が失敗してロールバックされます。

トランザクションの一貫性
一貫性とは、トランザクションがデータベースをある一貫性状態から別の一貫性状態に変換することを意味し、トランザクションの開始前および終了後にデータベース内のデータの整合性が破壊されないことを意味します。
トランザクションの分離
分離では、トランザクションによるデータベース内のデータの変更が、送信が完了するまで他のトランザクションに表示されないようにする必要があります。

SQL 標準で定義されている 4 種類のレベル (分離性は低位から高位) (同時実行性は高位から低位)

READ UNCOMMITED

Committed Read (READ COMMITED)

反復可能読み取り (REPEATABLE READ)

シリアル化可能 (SERIALIZABLE)

トランザクションの永続性

トランザクションがコミットされると、その変更はデータベースに永久に保存されます。この時点でシステムがクラッシュしても、変更されたデータはデータベースに保存されます。提出されたものは失われることはありません。


大したことって何ですか?

実行に時間がかかり、大量のデータを操作するトランザクション

リスク:

ロックしすぎるデータにより、大量のブロックとロック タイムアウトが発生する

Return Rolling に時間がかかる

実行時間が長く、マスタースレーブ間の遅延が発生しやすい

大規模なトランザクションをどのように処理するか?



一度に大量のデータを処理しないようにします

    トランザクション内の不要な SELECT 操作を削除します

以上がmysqlの大きなテーブルとは何ですか?大したこととは何ですか?どうやって対処すればいいのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート