title: How to reclaim MySql disk space
body: <p>I have a table in MySql server and the table contains around 1M rows. Only because of one column table is taking more disk space day by day. The datatype of this column is Mediumblob. Table size is around 90 GB.</p>
  
  <p>After each row insertion, I do some processing then after I don't really require this column. </p>
  
  <p>So for this column, if I set the value to NULL after processing the row, does MySql utilizes this empty space for next row insertion or not?</p>
  
  <p><strong>MySql Server details</strong></p>
  
  <p>Server version: 5.7</p>
  
  <p>Engine: InnoDB</p>
  
  <p>Hosting: Google Cloud Sql</p>
  
  <p><strong>EDIT 1</strong>:
  I deleted 90% of rows from table then I ran OPTIMIZE TABLE <em>table_name</em>
  but it has reduced only 4GB of disk space and it is not reclaiming the free disk space.</p>
  
  <p><strong>EDIT 2</strong>
  I even deleted my database and created new DB and table but MySql server still showing 80GB disk space. Sizes of all databases of MySQL server </p>
  
  <pre><code>SELECT table_schema "database name",
           sum( data_length + index_length ) / 1024 / 1024 "database size in MB",
           sum( data_free )/ 1024 / 1024 "free space in MB"
       FROM information_schema.TABLES
       GROUP BY table_schema; 
  
  +--------------------+---------------------+------------------+
  | database name      | database size in MB | free space in MB |
  +--------------------+---------------------+------------------+
  | information_schema |          0.15625000 |      80.00000000 |
  | app_service        |         15.54687500 |       4.00000000 |
  | mysql              |          6.76713467 |       2.00000000 |
  | performance_schema |          0.00000000 |       0.00000000 |
  | sys                |          0.01562500 |       0.00000000 |
  +--------------------+---------------------+------------------+
  </code></pre>
  
  <p>Thanks</p>