MySQL でのテーブルスペースの断片化をクリアする詳細な例

小云云
リリース: 2019-03-02 16:14:31
オリジナル
2092 人が閲覧しました

断片化の原因

コンテンツの行が削除されるたびに、スペースが空白になり、一定期間内に大量の削除操作が行われると、断片化が発生します。この空のスペースを、リストの内容を保存するために使用されるスペースよりも大きくします。挿入操作を実行するときに、MySQL は空のスペースを使用しようとしますが、特定の空のスペースが適切なサイズのデータ​​で占有されていない場合は、それでも完全に占有することはできないため、MySQL がデータをスキャンするときに、スキャンするオブジェクトは実際にはリストの容量要件の上限、つまりデータが書き込まれる領域のピーク位置になります。この記事では、MySQL でのテーブルスペースの断片化を解決する詳細な例に関する関連情報を主に説明します。この記事が、必要としている皆様の参考になれば幸いです。

推奨される関連する mysql ビデオ チュートリアル: "

mysql チュートリアル"

例:

テーブルには 10,000 行があり、各行は 10 バイトであり、削除操作を実行すると、100,000 バイトの記憶領域のみが残ります。 1 行の場合、実際の内容はわずか 10 バイトですが、MySQL はそれを読み取る際に 100,000 バイトのテーブルとして処理するため、フラグメントが増えるほどクエリのパフォーマンスに影響します。


テーブルのフラグメントサイズを確認する

(1) 特定のテーブルのフラグメントサイズを確認する

mysql> SHOW TABLE STATUS LIKE '表名';
ログイン後にコピー

結果の「Data_free」カラムの値がフラグメントサイズです

(2) 一覧フラグメント化されているすべてのテーブル

mysql> select table_schema db, table_name, data_free, engine   
from information_schema.tables 
where table_schema not in ('information_schema', 'mysql') and data_free > 0;
ログイン後にコピー

テーブルのフラグメントをクリアする

(1) MyISAM テーブル

mysql> optimize table 表名
ログイン後にコピー

(2) InnoDB テーブル

mysql> alter table 表名 engine=InnoDB
ログイン後にコピー

エンジンが異なると、インデックスとデータが分離されているため、OPTIMIZE 操作も異なります。データファイルを整理し、インデックスを再配置する

OPTIMIZE 操作はテーブルを一時的にロックするため、データ量が増えると時間がかかるため、単純なクエリ操作ではありません。設定に関係なく最適化コマンドをプログラムに組み込む どんなにヒット率が低くても、アクセス数が増えれば全体のヒット率も上がり、実行効率に大きな影響を与えることは間違いありません。より良い方法は、シェルで mysql の

information_schema.TABLES フィールドを定期的にチェックし、DATA_FREE フィールドをチェックすることです。それが 0 より大きい場合は、断片化があることを意味します

クリアの操作です。フラグメントはテーブルを一時的にロックします。データの量が増えると、実行に時間がかかります。たとえば、毎週水曜日の早朝に DATA_FREE フィールドをチェックします。思った警告値より大きい場合は、一度清掃してください。

関連する推奨事項:

mysql-MySQL テーブルスペースのクリア問題 (バージョン 5.6)


Mysql クエリキャッシュの断片化、キャッシュヒット率、Nagios の監視

mysql テーブルの断片化の原因の分析とクリーニングup _PHP チュートリアル

以上がMySQL でのテーブルスペースの断片化をクリアする詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!