Я подключаюсь к базе данных mysql, используя следующий код:
my $dbh = DBI->connect("DBI:mysql:test:localhost", $user, $pass)
or die $DBI::errstr;
my $sqlQuery = $dbh->prepare($query)
or die "Can't prepare $query: $dbh->errstr\n";
my $rv = $sqlQuery->execute
or die "can't execute the query: $sqlQuery->errstr";
while (my @row= $sqlQuery->fetchrow_array()) {
# do something;
}
Я сомневаюсь, что :это нормально до тех пор, пока мое приложение не взаимодействует с небольшими БД. Но когда я перемещаю это приложение в живую среду, где размер БД может составлять сотни ГБ, какие проблемы с производительностью может вызвать этот код. Фактически то, что я спрашиваю, находится в строке-
@row= $sqlQuery->fetchrow_array();
Будет ли Perl копировать все содержимое таблицы и сбрасывать его в переменную. Если да, не вызовет ли это значительных проблем с производительностью моего приложения, а также сервера базы данных?