MySQL slow_log テーブルを InnoDB エンジンに変更することはできません。詳細な説明

MySQL slow_log テーブルを InnoDB エンジンに変更することはできません。詳細な説明

背景

mysql.slow_log からスロー クエリ ログを取得するのは遅く、テーブルは csv テーブルであり、インデックスがありません。

アクセスを高速化するためにインデックスを追加したいのですが、csv エンジンではインデックスを追加できません (csv エンジンはコンマで区切られたテキストを保存します)。そのため、インデックスを追加するにはストレージ エンジンを変更することしかできません。

mysql.slow_log テーブルは myisam に変更できるが、innodb には変更できない

mysql> グローバル slow_query_log をオフに設定します。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

mysql> テーブル mysql.slow_log を変更します。engine=innodb;
エラー 1579 (HY000): このストレージ エンジンはログ テーブルには使用できません。
mysql> テーブル mysql.slow_log を変更します。engine=myisam;
クエリは正常、33760 行が影響を受けました (0.37 秒)
レコード: 33760 重複: 0 警告: 0

mysql.general_log を innodb に変更することはできません

mysql> テーブル mysql.general_log を変更します。engine=myisam;
クエリは正常、242956 行が影響を受けました (2.41 秒)
レコード: 242956 重複: 0 警告: 0

mysql> テーブル mysql.general_log を変更します。engine=innodb;
エラー 1579 (HY000): このストレージ エンジンはログ テーブルには使用できません。

公式ドキュメント

公式ドキュメントによると、ログ テーブルは CSV エンジンと MyISAM エンジンのみをサポートします。

なぜ innodb エンジンをサポートしないのですか?

InnoDB テーブルをサポートしないと考える根拠は何ですか?

友人に聞いた

ログ テーブル エンジンは、REDO および UNDO リソースを大量に消費すると思われます。

これは必要ありません。 。 。これらのデータは重要ではありません。 。

変更ログテーブルストレージエンジン

@old_log_state を @@global.general_log に設定します。
グローバル general_log を 'OFF' に設定します。
ALTER TABLE mysql.general_log ENGINE = MyISAM;
グローバル general_log を @old_log_state に設定します。

アーカイブログテーブル

mysqlを使用します。
general_log2 が存在する場合はテーブルを削除します。
general_log2 テーブルを作成します。
テーブル general_log の名前を general_log_backup に、general_log2 の名前を general_log に変更します。

参照する

一般クエリログとスロークエリログの出力先の選択

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • MySQL ストレージエンジン InnoDB の設定と使用方法の説明
  • MySQL ストレージ エンジン MyISAM と InnoDB の違いの概要
  • MySQL InnoDB ストレージ エンジンの詳細
  • MySQL InnoDBエンジンのインデックスとストレージ構造の詳細な説明
  • MySQLデータベースエンジンをInnoDBに変更する

<<:  Vue3.0+vite2は動的非同期コンポーネントの遅延読み込みを実装します

>>:  Linux ファイル操作でよく使われるコマンドのまとめ

推薦する

CSS オーバーフローラップの新しいプロパティ値をどこでも使用

1.まず、overflow-wrap属性を理解する CSS のoverflow-wrapプロパティは...

nginxとバックエンドポート間の競合の解決策

質問: Alice 管理システムを開発しているときに、すべてのバックエンド インターフェイスが最初の...

Dockerイメージの読み込み原理

目次Docker イメージ鏡とは何ですか? Dockerイメージの読み込み原理コミットミラーDock...

Vue で wangeditor リッチテキスト編集を使用する際の問題

wangEditor は、JavaScript と CSS に基づいて開発された Web リッチ テ...

CentOS 7.0 (mysql-5.7.21) で複数の MySQL インスタンスを起動する方法

設定手順Linux システム: CentOS-7.0 MySQL バージョン: 5.7.21 Lin...

Vue の状態管理: Vuex の代わりに Pinia を使用する

目次1. ピニアとは何ですか? 2. Piniaは使いやすい3. ユーザーエクスペリエンス1. ピニ...

Centos8 で yum を使用して rabbitmq をインストールするチュートリアル

/etc/yum.repos.d/フォルダに入るrabbitmq-erlang.repo ファイルを...

PHP 開発環境の構築に関する win10 docker-toolsbox チュートリアル

画像をダウンロード docker プル mysql:5.7 docker pull php:7.2-...

ウェブページを作るときに知っておくべきいくつかのスキル

1. IE6 では z-index が無効です。 CSS では、階層を変更するために z-index...

16進カラーコード(完全版)

赤とピンク、およびそれらの 16 進コード。 #990033 #CC6699 #FF6699 #FF...

PHP で JSON バックスラッシュを削除する例

1. 「stripslashes($_POST['json']);」メソッドを使用し...

iframe を通じて DOM 要素のサイズ変更を監視する

開発プロセス中によく発生する問題は、div のサイズ変更をどのように監視するかということです。たとえ...

MySQLの保存時間の不一致の問題を解決する

Java を使用してシステム時間を取得し、それを MySQL データベースに保存した後、時間タイプが...

Vue は Tencent Map を統合して API を実装します (デモ付き)

目次執筆の背景プロジェクトの説明事前準備注記執筆の背景以前のプロジェクトではTencent Maps...

IE6では画像要素imgに余分な空白スペースがある

ページの DIV+CSS レイアウトを行う際、IE6 で画像要素 img の下に余分なスペースができ...