witam
mam takie pytanko jak rozpoznac nadmiar w tabeli bazy MySQL'owej??
witam
mam takie pytanko jak rozpoznac nadmiar w tabeli bazy MySQL'owej??
tzn. o co Ci chodzi ??
Podczas dodawania danych możesz sprawdzać długość wprowadzonego ciągu np. za pomocą php :)
chodzi o to ze jak dodaje jakies dane do tabel skryptem php lub za pomoca phpmyadmin'a to raz na jakis czas w phpmyadmin w podgladzie struktury tabeli pokazuje sie nadmiar liwkwiduje sie go za pomoca zapytania do bazy "OPTIMIZE TABLE nazwa_tabeli
;
moge to zapytanie wywolywac za kazdym razem jak skrypt cos wstawia ale po co ... i wlasnie ciekawi mnie to jak np phpmyadmin wykrywa nadmiar w tabeli... a przechodzenie przez zrodelko phpmyadmin'a to ciezka praca... moze ktos cos wie o jakims zapytaniu (lub zapytaniach) ktore to pokazuja...
tutaj znajdziesz odpowiedz na swoje pytanie: http://dev.mysql.com/doc/mysql/en/table-maintenance-sql.html
dzieki Maker :)
a oto gotowa funkcja moze komus sie przyda:
function optimizeTable($tablename) {
$db=mysql_connect($HTTP_HOST,"xxxx","xxxx");
mysql_select_db("nazwa_bazy",$db);
$dbresult=mysql_query("SHOW TABLE STATUS FROM nazwa_bazy",$db);
while($row=mysql_fetch_array($dbresult)) {
$status_info[]=$row;
}
mysql_free_result($dbresult);
$in_array=false;
$p=0;
for($x=0;$x<count($status_info);$x++) {
if($status_info[$x]["Name"]==$tablename) {
$p=$x;
$in_array=true;
break;
}
}
if($in_array==true) {
$is_data_free=($status_info[$p]["Data_free"]!="0");
if($is_data_free==true)
mysql_query("OPTIMIZE TABLE `$tablename`",$db);
}
mysql_close($db);
}
nie jest moze optymalna ale dziala :)