この記事の内容は、mysql の大きなテーブルとは何ですか?大したこととは何ですか?どうやって対処すればいいのでしょうか?困っている友人は参考にしていただければ幸いです。
相対的に言えば、データベース テーブルはどのような状況で「大きなテーブル」と言えるのでしょうか?
テーブル内のデータが数千万行を超えると、データベースに影響を及ぼします
テーブル データ ファイルが巨大なテーブル データ ファイルは 10G を超えています (データ値はハードウェアに関連しています)
クエリが遅い: 一定時間内にフィルタリングするのが難しい 必要なデータを取得する
(例: 表示順序、ソースが少ない、微分性が低い、ディスク IO が多い、ディスク効率が低下、クエリが遅い)
1。インデックスの作成に時間がかかります。長期的なリスク:
MYSQL バージョン 5.5 未満では、作成時にテーブルがロックされます。インデックス
MYSQLバージョン>= 5.5 テーブルはロックされませんが、マスター/スレーブ遅延が発生します#2。テーブル構造を変更するには、長時間テーブルをロックする必要があります
##。 # リスク:
マスターとスレーブの遅延が長くなります
通常のデータ操作に影響します 対処方法 データベース内の大きなテーブル1。大きなテーブルを複数の小さなテーブルに分割する
難易度:
2.
利点:
フロントエンドとバックエンドのビジネスへの影響を軽減
アーカイブ時間 ポイントの選択
トランザクションのアトミック性
トランザクションは最小の作業単位を考慮する必要があります。トランザクション全体のすべての操作が成功するか、すべてが失敗するかのどちらかです。トランザクションの一部のみを実行することはできません。1. 財務管理口座の残高が 2,000 元を超えているかどうかを確認します。
2 財務管理口座の残高から 2,000 元を差し引きます。アクティブな預金口座 2000 元トランザクション全体のすべての操作が正常に送信されるか、すべての操作が失敗してロールバックされます。トランザクションの一貫性
一貫性とは、トランザクションがデータベースをある一貫性状態から別の一貫性状態に変換することを意味し、トランザクションの開始前および終了後にデータベース内のデータの整合性が破壊されないことを意味します。
トランザクションの分離
分離では、トランザクションによるデータベース内のデータの変更が、送信が完了するまで他のトランザクションに表示されないようにする必要があります。
SQL 標準で定義されている 4 種類のレベル (分離性は低位から高位) (同時実行性は高位から低位)
READ UNCOMMITED
Committed Read (READ COMMITED)反復可能読み取り (REPEATABLE READ)
シリアル化可能 (SERIALIZABLE)トランザクションの永続性
トランザクションがコミットされると、その変更はデータベースに永久に保存されます。この時点でシステムがクラッシュしても、変更されたデータはデータベースに保存されます。提出されたものは失われることはありません。
大したことって何ですか?
実行に時間がかかり、大量のデータを操作するトランザクション
リスク:
実行時間が長く、マスタースレーブ間の遅延が発生しやすい
大規模なトランザクションをどのように処理するか?
一度に大量のデータを処理しないようにします
以上がmysqlの大きなテーブルとは何ですか?大したこととは何ですか?どうやって対処すればいいのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。