データベースに行を挿入すると、その行にデータが追加されます。行を削除するとそのデータベースの空き領域が解放されますか?または、使用されているスペースの量を変更せずに行を削除するだけですか?データベース内の行を削除すると、そのデータベースは空き領域になりますか?
答えて
SQLの場合は、その観点から異なります。たとえば、ディスク・スペースを使い果たす前に100万行を挿入することができれば、それらの半分を削除すると、もう半分を挿入するスペースがもう1つ増えます。 (トランザクションロギングを無視すると、ロギングが他の場所で行われていることが想像できます)
データファイルは、成長した後も縮小しません。したがって、データファイルによって使用されるドライブスペースは、OSまたは他のアプリケーションで使用できません。データベースの縮小操作が行われるまで、これにより、ファイル内のデータが再編成され、OSまたは他のアプリケーションが使用するためにドライブ上のスペースが解放されます。
Ask Tomは、Oracleの言う:
あなたがテーブルからデータを削除する場合 - ブロックは が落ちた解放されたことをブロックの上のスペースの量を想定して(そのテーブルのため 空きリストに移動しますpctusedの下に)。これらのブロックは、このテーブルへの後続の挿入および更新のために使用されます( )。
インデックスからデータを削除すると、インデックスエントリ がオンになっているブロックが "空"になりました - そのブロックはフリーリストに戻ってインデックス構造体のどこでも使用できます。それ以外のブロックはそのままで、 がそのブロックに自然に行き渡るデータ(それは b *ツリーのどこかにあるため)がそこに行きます。
削除するとスペースが有効に再利用されます。あなたのデータベースでは、 はdba_free_spaceに新しい空き領域を表示しません。空きリストにはブロック が、インデックス構造には空きスペースが多くなります。
わかりやすくするために、これはOracleデータベースに適用されます。 –
あなたが正しいです、私はタグをはっきりと見ませんでした。 – roymustang86
Oracleを使用すると、削除された行のスペースは、すぐにspecific commandsを使用して再要求できます。それ以外の場合は、@ oymustang86のように新しい行のために予約されたままになります。
- 1. char変数から空き領域を削除する方法
- 2. Vim:ビジュアルで選択した領域内の空行を削除する
- 3. データベース内の行を削除する
- 4. データベース内の行を削除する
- 5. SQLiteデータベースが変更されたときに、そのデータベースが削除されるのはなぜですか?
- 6. C++には空き領域がありますか?
- 7. SQL Serverデータベースの空き領域を見つける最も良い方法は?
- 8. データベース内の複数の行から数量を削除する
- 9. データベースから1行を削除する
- 10. RとGviz:プロットの領域を削除(/トリミング)する方法は?
- 11. JFrameの空き領域を削除するにはどうすればよいですか?
- 12. jqueryの削除ボタンはデータベースから行を削除できません
- 13. Herokuの空き領域
- 14. jTableからデータベース内のデータを削除するには?
- 15. 電話の空き領域にステータスバーがありませんか?
- 16. データベースから繰り返し行を削除する方法は?
- 17. emacsでテキストの領域を削除するには?
- 18. MySQLデータベース内のすべてのテーブルを削除するには?
- 19. GridView:データベースから選択した行の値を削除する方法と、データベースのdropdownlist = valueを削除する方法はありますか?
- 20. Drupalデータベース内の間違った行を削除/更新する
- 21. ggplot2:x軸の日付から週末と休日の空き領域を削除する
- 22. Jquery Ajaxはテーブルとデータベースの行を削除します
- 23. クリック可能な領域はイメージビュー内にありますか?
- 24. jqueryセレクタは、領域内にある要素のない領域を選択する必要があります
- 25. WordPressの管理領域から不必要なメニューリンクを削除するには
- 26. FMDBのSQLiteデータベースから行を削除
- 27. オーバーフローするクリック可能な領域を削除する
- 28. mysql:空き領域(innodb)
- 29. Hibernateを介してデータベースから行とそのすべての参照を削除するには?
- 30. Android:既存のデータベースを開くときにすべての行を削除するSQLiteデータベース
これはmysqlまたは(microsoft)sqlサーバーに関するものですか?あなたは両方のタグを付けました! – bfavaretto
なぜ「MySQL」と「SQL-Server」の両方にタグを付けましたか?詳細は両者で異なるため、これは2つの異なる質問です。 –
@MartinSmithこれは、異なるDBシステムが削除された行のスペースをどのように処理しているかということについて素晴らしい質問になるかもしれません。 –