検索
ホームページデータベースmysql チュートリアルMysqlcheckを使ったチェックと修復方法、テーブルの最適化について詳しく解説


mysqlcheck は MySQL に付属するツールで、実際には、テーブルを保守し、チェック、分析、修復、最適化することです。 mysqlcheck ツールの簡単な使用法を紹介します。公式ドキュメントはこちらです保养 表,其实就是检查,分析,修复和优化了。下面来介绍 mysqlcheck 工具的简单使用,官方文档在这里

以下的例子都是基于 MySQL 5.6 版本运行状态下(mysqlcheck是个在线工具),   不同的存储引擎对于这个命令的支持程度不同(指的是 check, repair, analyze, optimize),下面内容偏于操作,主要基于 innodb 引擎。

提示:OPTIMIZE 在大表时候可能会消耗很多时间,不清楚原理情况下请谨慎使用!!!  innodb 一般不用 OPTIMIZE,请参见 Using MySQL OPTIMIZE tables? For InnoDB? Stop

检查特定的表

注意在shell中执行,不是在mysql的交互环境下

如果应用中提示某个表坏了,使用下面的命令来检查。

$ mysqlcheck -c newmandela order -uroot -pEnter password:
newmandela.order                                   
OK

newmandela 是库名, order是表名,还需要输入用户名和密码

检查一个库中的所有表

$ mysqlcheck -c newmandela -uroot -p
Enter password:
newmandela.account                                 OK
newmandela.alarm                                   OK
newmandela.alarm_settings                          OK
newmandela.auth_group                              OK
newmandela.auth_group_permissions                  OK
newmandela.auth_permission                         OK...

检查所有库中的所有表

全部的库和表都检查一遍了。

$mysqlcheck -c --all-databases -uroot -p
Enter password:
apmonitor.acinfo                                   OK
apmonitor.apdailysts                               OK
apmonitor.apinfo                                   OK
apmonitor.apmonthsts                               OK
apmonitor.apscanlog                                OK
apmonitor.auth_group                               OK...

如果只想检查某几个库呢? 可以使用 –databases 参数

$ mysqlcheck -c --databases newmandela radius -uroot -p
Enter password:
newmandela.account                                 OK
newmandela.alarm                                   OK
newmandela.alarm_settings                          OK
newmandela.auth_group                              OK...

使用 mysqlcheck 分析表

$ mysqlcheck -a radius payment_transactionrecord  -uroot -pEnter password:
radius.payment_transactionrecord                   Table is already up to date

上面的命令 用来分析 radius 库的 payment_transactionrecord表, -a 表示 analyze

使用 mysqlcheck 优化表

# mysqlcheck -o radius payment_transactionrecord  -uroot -pEnter password:
radius.payment_transactionrecord                   OK

-o 代表 optimize ,这里是优化 radius 库的 payment_transactionrecord

使用 mysqlcheck 修复表

# mysqlcheck -r radius payment_transactionrecord  -uroot -pEnter password:
radius.payment_transactionrecord                   OK

-r 代表 repair ,这里是 修复 radius 库的 payment_transactionrecord

检查,优化,修复表组合命令

# mysqlcheck -uroot -p --auto-repair -c -o newmandelaError:  mysqlcheck doesn't support multiple contradicting commands.

上面的命令报错了,去掉 -c

# mysqlcheck -uroot -p --auto-repair -o newmandelaEnter password:
newmandela.account
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
newmandela.alarm
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
newmandela.alarm_settings
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK

每张表都出现了 Table does not support optimize, doing recreate + analyze instead, 代表什么意思呢? 它的意思不是说 innodb 引擎不支持 优化,

mysqlcheck 常用选项

  • A, –all-databases 表示所有库

  • -a, –analyze 分析表

  • -o, –optimize  优化表

  • -r, –repair 修复表错误

  • -c, –check 检查表是否出错

  • –auto-repair  自动修复损坏的表

  • -B, –databases 选择多个库

  • -1, –all-in-1 Use one query per database with tables listed in a comma separated way

  • -C, –check-only-changed  检查表最后一次检查之后的变动

  • -g, –check-upgrade Check for version dependent changes in the tables

  • -F, –fast Check tables that are not closed properly

  • –fix-db-names Fix DB names

  • –fix-table-names Fix table names

  • -f, –force Continue even when there is an error

  • -e, –extended Perform extended check on a table. This will take a long time to execute.

  • -m, –medium-check Faster than extended check option, but does most checks

  • -q, –quick

    以下の例は、MySQL 5.6 バージョンの実行状態に基づいています (mysqlcheck はオンライン ツールです)。このコマンド (チェック、修復、分析、最適化を指します) については、主に innodb エンジンに基づいた次の内容がより操作的です。
ヒント: 大きなテーブルを使用する場合、OPTIMIZE は時間がかかることがあります。原則を知らない場合は注意して使用してください。通常、OPTIMIZE は innodb では使用されません。「InnoDB の場合は MySQL OPTIMIZE テーブルを使用する」を参照してください。 ? 停止🎜

特定のテーブルを確認してください

🎜 mysql の対話環境ではなく、シェルで実行するように注意してください🎜🎜 アプリケーションがテーブルが壊れていることを示すプロンプトを表示した場合は、次のコマンドを使用して確認します。 🎜rrreee🎜newmandela はライブラリ名、order はテーブル名で、ユーザー名とパスワードも入力する必要があります🎜

1 つのライブラリ内のすべてのテーブルをチェックする

rrreee

すべてのライブラリ内のすべてのテーブルをチェックする

🎜 すべてのライブラリとテーブルがチェックされています。 🎜rrreee🎜特定のライブラリのみを確認したい場合はどうすればよいですか? –databases パラメータを使用できます🎜rrreee

mysqlcheck を使用してテーブルを分析します

rrreee🎜上記のコマンドは、payment_transactionrecord、<code>-a は分析を意味します🎜

mysqlcheck を使用してテーブルを最適化します

rrreee🎜-o は最適化を意味します。 RADIUS ライブラリ /code> テーブルを最適化する payment_transactionrecordmysqlcheck を使用してテーブルを修復しますrrreee🎜<code>-r は修復を表します。payment_transactionrecord は次のとおりです RADIUS ライブラリを修復するテーブル 🎜

check、optimize、修復テーブル組み合わせコマンド

rrreee🎜上記のコマンドはエラーを報告しました。-c を削除してください 🎜rrreee🎜すべてのテーブルテーブルは最適化をサポートしていません。代わりに再作成と分析を実行しますと表示されます。これは何を意味しますか? これは、innodb エンジンが最適化、🎜

mysqlcheck 共通オプション

  • 🎜A、–all-databases すべてのライブラリを表します🎜🎜<li>🎜<code>-a, –analyze 分析テーブル🎜🎜
  • 🎜-o, –optimize 最適化テーブル🎜🎜
  • 🎜 -r, –repair テーブル エラーを修復します🎜🎜
  • 🎜-c, –check テーブル エラーが存在するかどうかを確認します🎜🎜
  • 🎜 –auto-repair 破損したテーブルを自動的に修復します🎜🎜
  • 🎜-B, –databases 複数のライブラリを選択します🎜🎜
  • 🎜-1, –all-in- 1 カンマ区切りでリストされたテーブルを含むデータベースごとに 1 つのクエリを使用します🎜🎜
  • 🎜-C, –check-only-changed テーブルの最後のチェック以降の変更を確認します🎜🎜
  • 🎜-g, –check-upgrade テーブル内のバージョン依存の変更を確認します🎜🎜
  • 🎜-F, –fast テーブル内の変更を確認します正しく閉じられていません🎜 🎜
  • 🎜–fix-db-names DB 名を修正します🎜🎜
  • 🎜–fix-table-names テーブル名を修正します🎜🎜🎜-f, –force
  • エラーがあっても続行🎜🎜
  • 🎜-e, –extended テーブルの拡張チェックを実行します。これには時間がかかります。実行に長い時間がかかります。🎜🎜
  • 🎜-m, –medium-check 拡張チェックオプションより高速ですが、ほとんどのチェックを実行します🎜🎜
  • 🎜-q, –quick 中程度のチェック オプションよりも高速です🎜🎜🎜

以上がMysqlcheckを使ったチェックと修復方法、テーブルの最適化について詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQLにユーザーを追加:完全なチュートリアルMySQLにユーザーを追加:完全なチュートリアルMay 12, 2025 am 12:14 AM

MySQLユーザーを追加する方法を習得することは、データベース管理者と開発者にとって重要です。これは、データベースのセキュリティとアクセス制御を保証するためです。 1)CreateUserコマンドを使用して新しいユーザーを作成し、2)付与コマンドを介してアクセス許可を割り当て、3)FlushPrivilegesを使用してアクセス許可を有効にすることを確認します。

MySQL文字列データ型のマスター:Varchar vs. Text vs. CharMySQL文字列データ型のマスター:Varchar vs. Text vs. CharMay 12, 2025 am 12:12 AM

choosecharforfixed-lengthdata、varcharforvariable-lengthdata、andtextforlargetextfields.1)chariseffienceforconsistent-lengthdatalikecodes.2)varcharsuitsvariaible-lengthdatalikenames、balancingflexibilityandperformance.3)Textisidealforforforforforforforforforforforidex

MySQL:文字列データ型とインデックス:ベストプラクティスMySQL:文字列データ型とインデックス:ベストプラクティスMay 12, 2025 am 12:11 AM

MySQLの文字列データ型とインデックスを処理するためのベストプラクティスには、次のものが含まれます。1)固定長のchar、可変長さのvarchar、大規模なテキストのテキストなどの適切な文字列タイプを選択します。 2)インデックス作成に慎重になり、インデックスを避け、一般的なクエリのインデックスを作成します。 3)プレフィックスインデックスとフルテキストインデックスを使用して、長い文字列検索を最適化します。 4)インデックスを定期的に監視および最適化して、インデックスを小さく効率的に保つ。これらの方法により、読み取りと書き込みのパフォーマンスをバランスさせ、データベースの効率を改善できます。

MySQL:リモートでユーザーを追加する方法MySQL:リモートでユーザーを追加する方法May 12, 2025 am 12:10 AM

toaddauserremotelytomysql、フォローステープ:1)connecttomysqlasroot、2)createanewuserwithremoteaccess、3)grantniverayprivileges、and4)flushprivileges.

MySQL文字列データ型の究極のガイド:効率的なデータストレージMySQL文字列データ型の究極のガイド:効率的なデータストレージMay 12, 2025 am 12:05 AM

tostorestringseffiedlyinmysql、choosetherightdatatypebasedonyourneadss:1)usecharforfixed-lengthstringslikecountrycodes.2)usevarforvariable-lengthstringslikenames.3)usetextfor forlong-formtextcontent.4)useblobforborikedalikeimages

mysql blob vs.テキスト:大きなオブジェクトに適したデータ型を選択するmysql blob vs.テキスト:大きなオブジェクトに適したデータ型を選択するMay 11, 2025 am 12:13 AM

MySQLのBLOBおよびテキストデータ型を選択する場合、BLOBはバイナリデータの保存に適しており、テキストはテキストデータの保存に適しています。 1)BLOBは、写真やオーディオなどのバイナリデータに適しています。2)テキストは、記事やコメントなどのテキストデータに適しています。選択するときは、データプロパティとパフォーマンスの最適化を考慮する必要があります。

MySQL:製品にルートユーザーを使用する必要がありますか?MySQL:製品にルートユーザーを使用する必要がありますか?May 11, 2025 am 12:11 AM

いいえ、Youは、usotherootuserinmysqlforyourproduct.instead、createpificusers withlimitedprivilegestoenhancesecurityandperformance:1)createanewuserwithastrongpassword、2)grantonlynlyneversearpermissionStothisuser、3)正規環境筋肉筋周辺の環境

MySQL文字列データ型説明:データに適したタイプを選択するMySQL文字列データ型説明:データに適したタイプを選択するMay 11, 2025 am 12:10 AM

mysqlstringdatatypesshouldbechosenbadedatacharacteristicsandusecases:1)usecharforfixed-lengthstringslikecountrycodes.2)usevarforvariable-lengthstringslikenames.3)usebinaryorvarniaryforbinarydatalikecryptograpograpogrationckeys.4)使用

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

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

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません