sql >> データベース >  >> RDS >> Mysql

削除された行が占めるスペースは再利用されますか?

    パラノイアです:)

    DBのサイズが不必要に大きくなることはありませんが、パフォーマンスの問題のためにスペースも解放されません。

    おそらく聞いたことがあるのは、レコードを削除した場合、そのスペースはオペレーティングシステムに戻されないということです。 。代わりに、DBが後で再利用するための空のスペースとして保持されます。

    これは次の理由によるものです:

    • DBには、データを保存するためのHDスペースが必要です。スペースがない場合は、最初は空きスペースを確保します。
    • 新しい行を挿入すると、そのスペースの一部が使用されます。
    • 空き容量がなくなると、新しいブロックが予約されます。
    • これで、一部の行を削除するとき 、ますます多くのブロックを予約することを防ぐために、そのスペースは解放されますが、オペレーティングシステムに戻されることはないため、新しいブロックを予約することなく、後で再び使用できます。

    ご覧のとおり、スペースは 再利用されましたが、返されることはありません。それがあなたの質問の要点です。



    1. PL / pgSQL関数に副作用があるのに、SQL関数にはないのはなぜですか?

    2. MySQLでロールを使用して特権を管理する方法

    3. ImportError:「MySQL」という名前のモジュールがありません

    4. PHP/MYSQLを使用した安全なパブリックAPIの構築