dari kodenya sepertinya tidak ada masalah, data tidak terhapus mungkin karena kd_mapel yang berisi karakter yang membuat mysql_query gagal seperti tanda petik dan tanda &. Untuk mengetahuinya coba tambahkan or die(mysql_error()) seperti:
mysql_query("delete from tb_mapel where kd_mapel = '$kd_mapel'") or die(mysql_error());
Untuk tidak overhead tentu saja tidak bisa, dan kamu tidak perlu menghawatirkan itu kecuali ukuran overhead sangat besar.