OPTIMIZE TABLEを実行して、パフォーマンスを向上させるためにテーブルを最適化します


12

Linux 64ビットOSを実行しています。mysqlチューナーは以下のことを言っています:

--------一般統計---------------------------------------- ----------
[-] MySQLTunerスクリプトのバージョンチェックをスキップしました
[OK]現在、サポートされているMySQLバージョン5.1.61-logを実行しています
[OK] 64ビットアーキテクチャでの動作

--------ストレージエンジン統計--------------------------------------- ----
[-]ステータス:-アーカイブ-BDB-フェデレーテッド+ InnoDB -ISAM -NDBCluster
[-] MyISAMテーブルのデータ:1G(テーブル:1914)
[-] InnoDBテーブルのデータ:4M(テーブル:199)
[!!]断片化されたテーブルの総数:296

--------セキュリティに関する推奨事項---------------------------------------- ---
[OK]すべてのデータベースユーザーにパスワードが割り当てられています

--------パフォーマンスメトリック---------------------------------------- ---------
[-]最大6秒(7K q [1K qps]、142 conn、TX:8M、RX:701K)
[-]読み取り/書き込み:97%/ 3%
[-]合計バッファ:1.7Gグローバル+スレッドあたり13.2M(最大384スレッド)
[OK]可能な最大メモリ使用量:6.6G(インストールされているRAMの42%)
[OK]クエリが遅い:0%(0 / 7K)
[OK]利用可能な接続の最大使用率:5%(20/384)
[OK]キーバッファサイズ/ MyISAMインデックスの合計:1.5G / 2.7G
[OK]キーバッファヒット率:97.4%(553Kキャッシュ/ 14K読み取り)
[OK]クエリキャッシュの効率:64.6%(4Kキャッシュ/ 6K選択)
[OK] 1日あたりのクエリキャッシュプルーニング:0
[OK]一時テーブルを必要とするソート:0%(2つの一時ソート/ 337ソート)
[OK]ディスク上に作成された一時テーブル:8%(ディスク上に17 /合計198)
[OK]スレッドキャッシュヒット率:85%(20作成/ 142接続)
[OK]テーブルキャッシュヒット率:98%(438を開く/ 445を開く)
[OK]使用されるオープンファイルの制限:10%(856 / 8K)
[OK]すぐに取得されるテーブルロック:99%(2K即時/ 2Kロック)
[OK] InnoDBデータサイズ/バッファープール:4.2M / 8.0M


--------推奨事項----------------------------------------- ------------
一般的な推奨事項:
    OPTIMIZE TABLEを実行して、パフォーマンスを向上させるためにテーブルを最適化します
    MySQLは24時間以内に起動しました-推奨事項は不正確な場合があります

推奨事項は、OPTIMIZE TABLEパフォーマンスを向上させるためにテーブルを最適化することです。しかし、Putty経由で実行する方法がわかりません。

Puttyでコードを実行する方法を教えてくれる人はいますか?

回答:


7

OPTIMIZE TABLE SQLステートメントです-MySQLクライアントで実行します。

サーバーのコマンドラインに、コマンドラインクライアントをインストールする必要があります。を使用して、クライアントのデータベースに接続できますmysql -u username -p

詳細については、ドキュメントをOPTIMIZE TABLE参照してください。


このサイトは、プロのシステム管理者からの質問に関するものです。
-gparent

@gparent-シェーンの完全に有効な答えではなく、質問をするつもりだったのですか?
マークヘンダーソン

2
@gparent正しい-しかし、SQLステートメントを見たときにそれを知ることに基づいて誰かのプロフェッショナリズムを判断するのは公平ではないと思います。研究はすぐに答えを見つけたでしょうが、..このコミュニティがあまりに「自明」であるという質問を捨てるという考えが好きではありません。
シェーンマッデン

あなたは正しい、私のコメントはここにまったく属していません、著者はシェーンの質問にコメントを投稿し、それを削除したと思います、それまたは私は本当にそれをBarkatの質問に投稿するつもりでしたが、私は通常より多くの情報を追加しますそうでした。
-gparent

1
私はあなたに同意しませんが、線を引く必要がある場所があります。現在、MySQLデータベースを使用して最適化しようとしている専門家(よくある質問:専門的な能力)は、用語をグーグルで検索し、それが最初の検索結果からのMySQLクエリであると理解するのに十分な能力があると言うのは公平だと思います。多分、どの従業員にも期待しすぎているのかもしれません
。– gparent

18

mysqlcheck -u username -p --auto-repair --optimize --all-databasesターミナルで試すこともできます。

「テーブルの最適化」を実行する限り、このようにMySQLを起動できmysql -u username -p、そこからコマンドを実行できます。通常、最初に使用するコマンドは最初ですshow databases;が、MySQLチュートリアルを最初に見つける必要があります。Googleで最初に登場したもの:http : //downloads.mysql.com/docs/mysql-tutorial-excerpt-5.1-en.pdf

パテを使用しているかどうかは関係ありません。「パテ経由」ではなく、「コマンドラインから」と言いたい場合があります。


2
これは、受け入れられたものよりもはるかに優れたソリューションです。コマンドを実行する前にすべてのデータベースとテーブルを列挙する必要はなく、自動修復も必要ありません。
サミッチ

1
また、これらのいずれかを実行する前に、自分自身を支持し、データベースのバックアップを行ってください。mysqldump -u username -p dbname > dbname.sqlそしてgzip dbname.sqlうまくやるべきです。
Fiascoラボ

フィアスコ、少なくともmysqldump -u username -p db_name > dbname.sql
セントス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.