После переноса сайта на хостинг стали появляться ошибки/варнинги типа "Duplicate entry...". Не критично, но неприятно.
Вот простой скрипт, который быстро и просто чинит таблицы и оптимизирует их. Рекомендуется к регулярному запуску.
use strict;
use Time::HiRes;
my $database = "";
my $hostname = "localhost";
my $port = "3306";
my $user = "";
my $password = "";
use DBI;
my $dbh = DBI->connect("DBI:mysql:$database:$hostname:$port", $user, $password);
# Repair and optimize each table
foreach my $table ($dbh->tables) {
my $t0 =Time::HiRes::time() ;
unless ($dbh->do("REPAIR TABLE $table")) {
print "Skipped: $table\n";
next;
};
if ($dbh->do("OPTIMIZE TABLE $table")) {
my $t1 = Time::HiRes::time();
my $delta=$t1 - $t0;
print "[$delta]\tRepaired/Optimized: $table\n";
}
}
# Close the database connection
$dbh->disconnect;
Вложение | Размер |
---|---|
![]() | 711 байт |
Комментарии
"Если программист, решая какую-то проблему, решает использовать Perl, то это значит, что у него две проблемы"...
Интересная точка зрения
Можно было бы и снипет сделать, конечно для дру, но у меня сайты на разных двигах. А перл - один из удобнейших языков, imho