زمانی که یک و یا چند row از یک جدول حذف میشه , این باعث میشه که یک فضای خالی در اون جدول ایجاد بشه . و Mysql این رو در یادش نگه میداره تا زمانی که یک Row جدید insert بشه . زمانی که روی جدید ایجاد میشه mysql اول به اون فضا هایی که قبلا به خاطر سپرده مراجعه می کنه و اون ها را در اون فضا های خالی میذاره . این فضاهای خالی برای MYSql مانند اسباب و اساسیه بدردنخور هستند که فقط هزینه بر هستند .
اجازه بدید یه مثال بزنم :
شما فرض کنید 5 تا خونه دارید که اونا رو به اجاره دادید . حالا یکی از مستاجر ها پا میشه . خوب از حالا تا زمانی که یه نفر دیگه بیاد جایگزین بشه , علاوه بر اینکه برای شما از اونجا درآمدی حاصل نمیشه بلکه باید یه چیزی هم بایت نگه داری اونجا هزینه کنید . اصلاحا به این کار که برای چیزی که هم اکنون برای ما درآمدو یا سودی ندارد هزینه اضافه کنی را OverHead میگن .
برای از بین بردن این فضاهای خالی می تونی از کد زیر استفاده کنی :
<?php
mysql_connect($host,$username,$password);
mysql_select_db($db);
$table_name="Your_table_name_here"
$sql="OPTIMIZE TABLE '$table_name'";
if(mysql_query($sql))
{
echo "The $table_name has been optimized";
}
else
{
echo "Failed to optimize $table_name ";
}
?>
موفق باشید