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 ファイル操作でよく使われるコマンドのまとめ

推薦する

Linux入力サブシステムフレームワーク原理の分析

入力サブシステムフレームワークLinux 入力サブシステムは、上から下に向かって、入力サブシステム ...

Linux コマンドラインでパケットをキャプチャするために tcpdump を使用するいくつかの機能

tcpdump は、ネットワークの問題のトラブルシューティングに効果的に役立つ、柔軟で強力なパケット...

データベースインデックスの知識ポイントの概要

目次ファーストルックインデックスインデックスの概念インデックスファイルの構成インデックスの役割SQL...

外部ネットワークアクセスを許可するためのMysql5.6の設定手順の詳細を共有する

最近、MySQL 5.6 を導入しましたが、デフォルトでは MySQL はローカル サービスのみを許...

ウェブサイトのデザイン体験のための7つの異なるカラースキーム

ウェブサイト構築におけるカラーマッチングは非常に特殊であり、ウェブサイトのテーマ、感情、雰囲気などの...

MySQL での GROUP_CONCAT の使用例の分析

この記事では、例を使用して、MySQL で GROUP_CONCAT を使用する方法について説明しま...

Mysql varchar型の合計操作例

友人の中には、データベースについて学習しているときに、テーブル構造を作成するときに誤ってフィールドを...

Mybatis マッパー動的プロキシの原理の分析

序文動的プロキシの原理を説明する前に、まず、mybatis を統合した後の dao 層の 2 つの実...

Vueバックグラウンド管理に多言語機能を追加する例

目次1.まず、main.jsページを設定します2. 対応するパスの下で言語パックを構成します。ここに...

MySQL Shell import_tableデータインポートの実装

目次1. import_tableの紹介2. データのロードとテーブル関数のインポートの例2.1 L...

Dockerコンテナの起動失敗を解決する方法

質問: コンピュータを再起動した後、docker の mysql コンテナを再起動できません。原因が...

Dockerコンテナオーケストレーション実装プロセス分析

実際の開発環境や本番環境では、コンテナを独立して実行することはあまりなく、複数のコンテナを一緒に実行...

CSS3はトランジション効果を実現するためにtransitionプロパティを使用する。

物件の詳細な説明transition 属性の目的は、一部の CSS プロパティ (背景など) をスム...

KVM ベースの SRIOV パススルー構成とパフォーマンス テストの詳細な説明

SRIOVの導入、VFパススルー構成、パケット転送速度性能テスト目次1. SRIOVの紹介2. 環境...

MySQL で group by を使用すると常にエラー 1055 が発生します (推奨)

MySQL で group by を使用すると常にエラー 1055 が発生するため、原因を確認する...