-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160
> I need to be able to drop several thousand (more like .25 million)
> tables from a database using DBI.
...
> The SLOW typical version:
> while (my @rows = $sth->fetchrow_array) { # Get the list of tables to drop
> from the a simple SQL query.
> my ($tablename) = @rows;
> $dbh->do("drop table $db.$tablename") or die $sql->errstr;
> }
Dropping a table is a relatively expensive thing to do, so this
may be as good as it gets. It's possible the driver's do()
method is not optimized; you should test it against deletion using
the database's built-in command line utility. It's also possible
there are some optimizations you can do at the database level
(e.g. in Postgres you could disable fsync), but that's outside
the scope of this list.
- --
Greg Sabino Mullane [email protected]
End Point Corporation http://www.endpoint.com/
PGP Key: 0x14964AC8 201103021530
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----
iEYEAREDAAYFAk1uqSAACgkQvJuQZxSWSsiCTQCggkBNtJhAi7tPKMsPLbd66qsN
giYAoO6CC+WGx9Vqq6FgQSDsMGXhD09A
=ll48
-----END PGP SIGNATURE-----