この記事では、「sync_binlog」、「binlog_cache_size」、「max_binlog_cache_size」に関連する問題など、mysql でバイナリ ログを記述するプロセスに関する関連知識を提供します。皆様のお役に立てれば幸いです。
バイナリログの書き込みプロセス
まず、公式ドキュメントの sync_binlog 設定の説明を見てみましょう。
sync_binlog
--sync-binlog= | |
sync_binlog | |
グローバル | |
SET_VAR プロンプトが適用される | |
##Type | |
##デフォルト値 | 1 |
最小値 | 0 |
最大値 | 2^32=4294967295 |
MySQL サーバーがバイナリ ログをディスクに同期する頻度を制御します。 |
- sync_binlog=1: トランザクションをコミットする前に、バイナリ ログとディスクの同期を有効にします。これは最も安全な設定ですが、ディスクへの書き込みが増加するため、パフォーマンスに悪影響を及ぼす可能性があります。停電やオペレーティング システムのクラッシュが発生した場合、バイナリ ログで失われたトランザクションは準備済みの状態にあるだけです。これにより、定期的な自動回復によってトランザクションをロールバックできるため、バイナリ ログからトランザクションが失われないことが保証されます。
- sync_binlog=N、0 または 1 以外の値: N 個のバイナリ ログ送信グループが収集された後、バイナリ ログはディスクに同期されます。停電やオペレーティング システムのクラッシュが発生した場合、サーバーはまだバイナリ ログにフラッシュされていないトランザクションをコミットしている可能性があります。この設定は、ディスクへの書き込みが増加するため、パフォーマンスに悪影響を与える可能性があります。値を大きくするとパフォーマンスは向上しますが、データ損失のリスクが増加します。
-
InnoDB
トランザクションで使用されるレプリケーション セットアップで可能な限り最大の耐久性と一貫性を得るには、次の設定を使用します。
sync_binlog =1.innodb_flush_log_at_trx_commit=1.
- 警告
InnoDB一般的には 0 に設定されません。0 はシステム動作と不規則な fsync に依存します。停電やシステムクラッシュが発生した場合はより危険です。トランザクションは送信されますが、バイナリ ログが失われます。 これを 1 に設定し、可能な限り最大限の耐久性と一貫性を確保し、その後のマスター/スレーブのレプリケーションとリカバリを確実にする方が安全です。ただし、これはパフォーマンスに悪影響を与えるため、ビジネスに必要な IOPS が高くない場合に設定できます。データが破損する可能性があります。 SCSI ディスク コントローラまたはディスク自体でバッテリ バックアップ式ディスク キャッシュを使用すると、ファイルの更新が高速化され、操作がより安全になります。ハードウェア キャッシュでのディスク書き込みのキャッシュを無効にしてみることもできます。
概要
sync_binlog 設定タイプは符号なし整数です。
- 1 より大きい値を設定する目的は、パフォーマンスを向上させることです。トランザクションをコミットする代わりに、fsync はバッチ フラッシュと同等です。これは賢い方法ですが、停電やシステム クラッシュが発生した場合は、バイナリ ログは失われますが、さらに存在します。ディスク自体がバッテリーバックアップのディスクキャッシュを使用していればより安全です。したがって、ビジネスで要求される IOPS が比較的高い場合に設定できますが、一般的にはあまり大きく設定せず、[100, 1000] の範囲に設定できます。
- また、sync_binlog=0 の記述から、実際にはトランザクションが送信された時点で、すぐには fsync は発生していないものの、実際にページに書き込まれていることも大まかに感じられます。ファイル システムのキャッシュ。実際、mysql には、トランザクションの実行中にトランザクションで生成されたバイナリ ログをキャッシュするキャッシュもあります。
- 引き続き、トランザクション実行時のバイナリ ログのキャッシュ関連の構成を見てみましょう。
- binlog_cache_size
# #コマンド形式 | --binlog-cache-size=||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
binlog_cache_size | ||||||||||||||||||||||
グローバル | #動的 | |||||||||||||||||||||
SET_VARプロンプトが適用されます | #いいえ||||||||||||||||||||||
タイプ | ##整数##デフォルト値 | |||||||||||||||||||||
##最小値 | 4096 | |||||||||||||||||||||
最大値(64ビットプラットフォーム) | 2^64=18446744073709547520 | |||||||||||||||||||||
最大値 (32 ビット プラットフォーム) | 2^32=4294967295 | |||||||||||||||||||||
ブロック サイズ | 4096 | |||||||||||||||||||||
--max-binlog-cache-size= | |
max_binlog_cache_size | |
グローバル | |
はい | |
No | |
整数 | |
2^ 64=18446744073709547520 | |
4096 | |
2^64=18446744073709547520 | |
4096 |
以上がMySql でバイナリ ログを作成するプロセスを完全にマスターするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

mysqloffersvariousstorageEngines、それぞれのfordifferentusecases:1)Innodbisidealforapplicationsingingidcomplianceanceandhighconcurrency、support transactions andforeignkeys.2)myisamisbestforread-havyworkloads、transactionsupptort.3)

MySQLの一般的なセキュリティの脆弱性には、SQLインジェクション、弱いパスワード、不適切な許可構成、および非合事ソフトウェアが含まれます。 1。SQL注射は、前処理ステートメントを使用することで防ぐことができます。 2。強力なパスワード戦略を強制的に使用することにより、弱いパスワードを回避できます。 3.不適切な許可構成は、ユーザー許可の定期的なレビューと調整を通じて解決できます。 4.未使用のソフトウェアは、MySQLバージョンを定期的にチェックして更新することでパッチを適用できます。

MySQLの遅いクエリを識別することは、遅いクエリログを有効にし、しきい値を設定することで実現できます。 1.スロークエリログを有効にし、しきい値を設定します。 2.スロークエリログファイルを表示および分析し、詳細な分析のためにMySQLDumpSlowやPT-Query-Digestなどのツールを使用します。 3.インデックスの最適化、クエリの書き換え、およびselect*の使用を回避することで、遅いクエリの最適化を実現できます。

MySQLサーバーの健康とパフォーマンスを監視するには、システムの健康、パフォーマンスメトリック、クエリの実行に注意する必要があります。 1)システムの健康を監視する:Top、HTOP、またはShowGlobalStatusコマンドを使用して、CPU、メモリ、ディスクI/O、ネットワークアクティビティを表示します。 2)パフォーマンスインジケーターの追跡:クエリ番号あたりのクエリ番号、平均クエリ時間、キャッシュヒット率などのキーインジケーターを監視します。 3)クエリ実行の最適化を確保します:スロークエリログを有効にし、実行時間が設定されたしきい値を超えるクエリを記録し、最適化します。

MySQLとMariaDBの主な違いは、パフォーマンス、機能、ライセンスです。1。MySQLはOracleによって開発され、Mariadbはフォークです。 2. Mariadbは、高負荷環境でパフォーマンスを向上させる可能性があります。 3.MariaDBは、より多くのストレージエンジンと機能を提供します。 4.MySQLは二重ライセンスを採用し、MariaDBは完全にオープンソースです。既存のインフラストラクチャ、パフォーマンス要件、機能要件、およびライセンスコストを選択する際に考慮する必要があります。

MySQLはGPLライセンスを使用します。 1)GPLライセンスにより、MySQLの無料使用、変更、分布が可能になりますが、変更された分布はGPLに準拠する必要があります。 2)商業ライセンスは、公的な変更を回避でき、機密性を必要とする商用アプリケーションに適しています。

Myisamの代わりにInnoDBを選択する場合の状況には、次のものが含まれます。1)トランザクションサポート、2)高い並行性環境、3)高いデータの一貫性。逆に、Myisamを選択する際の状況には、1)主に操作を読む、2)トランザクションサポートは必要ありません。 INNODBは、eコマースプラットフォームなどの高いデータの一貫性とトランザクション処理を必要とするアプリケーションに適していますが、Myisamはブログシステムなどの読み取り集約型およびトランザクションのないアプリケーションに適しています。

MySQLでは、外部キーの機能は、テーブル間の関係を確立し、データの一貫性と整合性を確保することです。外部キーは、参照整合性チェックとカスケード操作を通じてデータの有効性を維持します。パフォーマンスの最適化に注意し、それらを使用するときに一般的なエラーを避けてください。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









