序文
MySQL でデータを削除する方法は何ですか? 一般的に使用される削除方法は 3 つあります。delete、truncate、drop キーワードによる削除です。これら 3 つの方法はすべてデータの削除に使用できますが、シナリオは異なります。 1. 実行速度に関して 削除 > 切り捨て >> DELETE 2. 原則として 1. 削除 TABLE_NAME から xxx を削除 1. DELETE はデータベース DML 操作言語に属します。データのみを削除し、テーブル構造は削除しません。実行されるとトランザクションが実行され、トリガーがトリガーされます。 2. InnoDB では、DELETE は実際にはデータを削除しません。MySQL は実際には削除されたデータを削除済みとしてマークするだけです。したがって、DELETE がテーブル内のデータを削除しても、ディスク上のテーブル ファイルが占めるスペースは削減されず、ストレージ スペースも解放されません。削除されたデータ行を非表示に設定するだけです。ディスク領域は解放されませんが、次回データを挿入するときに再利用できます (再利用 → 上書き)。 3. DELETE が実行されると、削除されたデータはまずロールバック セグメントにキャッシュされ、トランザクションがコミットされた後に有効になります。 4. delete from table_name はテーブル内のすべてのデータを削除します。MyISAM の場合、ディスク領域はすぐに解放されますが、InnoDB ではディスク領域は解放されません。 5. delete from table_name where xxx の条件付き削除の場合、InnoDB も MyISAM もディスク領域を解放しません。 6.削除操作後にoptimize table table_nameを使用して、ディスク領域をすぐに解放します。 InnoDB か MyISAM か。したがって、ディスク領域を解放するために、削除後にテーブルの最適化操作を実行してください。 例: テーブルが占有するディスク容量を確認するための SQL 文は次のとおりです: (表示単位として M、データベース名: csjdemo、テーブル名: demo2) concat(round(sum(DATA_LENGTH/1024/1024),2),'M') を table_size として選択します。 information_schema.tables から ここで、table_schema='csjdemo' かつ table_name='demo2'; 次に、スペース最適化ステートメントを実行すると、実行後にテーブル サイズが変更されます。 テーブル最適化デモ2 このテーブルのサイズを見ると、テーブル構造のサイズだけが残っています。 7.削除操作は行ごとに実行され、行の削除操作ログは、ロールバックおよびREDO操作のREDOおよびUNDO表領域に記録されます。生成される大量のログもディスク領域を占有します。 2. 切り捨てる テーブル TABLE_NAME を切り捨てる 1. 切り捨て: データベース DDL 定義言語に属し、トランザクションを経由せず、元のデータはロールバック セグメントに格納されず、操作によってトリガーはトリガーされません。 実行後すぐに有効になり、取り戻すことはできません。 実行後すぐに有効になり、取り戻すことはできません。 2. truncate table table_name は、InnoDB または MyISAM に関係なく、すぐにディスク領域を解放します。テーブルの切り捨ては、テーブル構造ファイルがすでに存在するなど、テーブル作成プロセスが最適化されている点を除いて、実際にはテーブルを削除してから作成することに少し似ています。したがって、速度はドロップ テーブルの速度に近くなるはずです。 3. Truncate を使用すると、テーブルをすばやくクリアできます。そして、auto_increment の値をリセットします。 ただし、ストレージ エンジンの種類によっては、次の点に注意する必要があります。
つまり、InnoDB テーブル自体は auto_increment を永続化できません。テーブルを削除した後も、auto_increment はメモリ内に保存されますが、再起動後に失われ、1 からしか開始できなくなります。実際、再起動後の auto_increment は SELECT 1+MAX(ai_col) FROM t から開始されます。 4.切り捨てを使用する場合は、特にバックアップがない場合は注意してください。オンラインテーブルを誤って削除した場合は、すぐに中国民用航空に連絡してください。チケット予約電話番号: 400-806-9553 3. ドロップ テーブル名を削除します 1. Drop: Truncate と同じ、データベース DDL 定義言語に属します。 実行後すぐに有効になり、取り戻すことはできません。 実行後すぐに有効になり、取り戻すことはできません。 2. drop table table_name は、InnoDB か MyISAM かに関係なく、ディスク領域を直ちに解放します。dropステートメントは、テーブル構造が依存する制約、トリガー、およびインデックスを削除します。テーブルに依存するストアド プロシージャ/関数は保持されますが、無効になります。 3.ドロップを使用する際はご注意ください。フォームを削除して逃げたい場合は、チケットの予約が成功した後に操作を実行してください。チケット予約ホットライン: 400-806-9553 これを次のように理解することができます。本の場合、削除は目次を切り取ること、切り捨ては本のコンテンツを切り取って燃やすこと、ドロップは本を燃やすことです。 要約する これで、delete、truncate、drop の違いと選択方法についての記事は終了です。delete、truncate、drop の違いと選択方法についての詳細は、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: UDP DUP タイムアウト UPD ポート状態検出コード例
目次1: 単一マシンのパスワードフリーログイン構成1. 仮想マシンのホスト名を設定する2. 仮想マシ...
この質問に関連するニーズはまだないかもしれませんし、面接でこの質問をされたことがないかもしれませんが...
Vueドロップダウンリストの2つの実装最初の方法はv-forを使用する <el-select ...
目次ZabbixはNginxを監視するZabbixはTomcatを監視するZabbixはMySQLを...
Nginx は、リバース プロキシ機能を使用して負荷分散を実装できるほか、フォワード プロキシ機能を...
Web 開発の世界では、フレームワークは非常に一般的です。新しいフレームワークやテンプレートが毎日の...
ゴミ箱は Linux ユーザー、Windows ユーザー、Mac ユーザーにとって非常に一般的なので...
序文インターセプター最近のフロントエンド フレームワークでは、インターセプターは基本的に非常に基本的...
概要Nginx では変数を使用して設定を簡素化し、設定の柔軟性を向上させることができます。すべての変...
以下のように表示されます。 XML/HTML コードコンテンツをクリップボードにコピー<!DO...
目次【共通コマンド】 [一般的な esxi コマンドの概要] [esxcli コマンドの調査] ES...
相対幅と絶対幅が競合する場合のdivソリューション概要: 一般的に、絶対幅を使用する場合は px を...
勉強の計画は簡単に中断され、継続するのが困難です。先日、社内で事業の方向性を調整するための会議があり...
Windows と Linux 間でファイルを転送する場合は、Xftp ツールを使用できます。この...
目次トリガーとは何かトリガーを作成するMySQL 作成構文のキーワードの説明: 1. MySQL ト...