Usuwanie zdublowanych rekordów w bazie danych

Witam serdecznie,

Mam bazę danych SQL składającą się z ok 1,5 mln rekordów, z których jakieś 40% to zdublowane wartości.

Chciałbym pousuwać te zdublowane rekordy tak, ażeby nie było więcej niż 1 takiego samego rekordu w bazie.

(czyli żeby nie buło dublujących się wpisów).

Wykombinowałem coś takiego:

<?php

$db = mysql_pconnect("localhost", "northwest", "password");

mysql_select_db("baza") or die("Nastąpił problem z bazą danych!!");

mysql_query("SET NAMES 'latin2'");

$table = "tabelka_przeszukiwana";

mysql_select_db($table, $db);


$query = "select * from $table ";


$res = mysql_query($query, $db)or die("błąd");


while($row = mysql_fetch_array($res)) {

   $query2 = "select id from $table where email = '$row[1]'";

   $res2 = mysql_query($query2, $db)or die("błąd w query2");


   $num_record = mysql_numrows($res2);

   if ($num_record > 1){

       echo "DELETE FROM $table WHERE id= '$row[0]' 
";    

               $usuwane = "DELETE FROM $table WHERE id= '$row[0]'";

               $kasujemy = mysql_query($usuwane, $db)

       $i++;

   }


}

?>

[/code]

ten skrypt usuwa wszystkie dublujące rekordy… Wiecie może jak to poprawić?

ps. ten skrypt jest też mega wolny… da się go jakoś zoptymalizować żeby

chodził szybciej?

Z góry dziękuje za pomoc.

Pozdrawiam,

Northwest

Domyślam się, że na google masz bana…

http://mediakey.dk/~cc/mysql-remove-duplicate-entries/

http://www.simplemachines.org/community … opic=519.0