Mam taki kawalek kodu :
function trainFilter($spam) { $table = $this->tokenizeFile(); foreach($table as $value) { $totalsrow = new TotalsRow(new MysqlDatabase('localhost','root', 'wmateusz', 'spam')); $totalsrow->checkTotals($spam); $tokenrow = new TokenRow(new MysqlDatabase('localhost','root', 'wmateusz', 'spam')); $token = $tokenrow->setToken($value); $tokenrow->checkToken($token,$spam); //$row->insert(); } } function getTokensValues() { $table = $this->tokenizeFile(); foreach($table as $value) { $tab = new TokenTable(new MysqlDatabase('localhost','root', 'wmateusz', 'spam')); $gettoken[] = $tab->find($value); } return $gettoken; } function getTotalsValues() { $totals = new TotalsTable(new MysqlDatabase('localhost','root', 'wmateusz', 'spam')); $gettotals = $totals->findAll(); return $gettotals; }
Jak widac mamy tutaj 3 funkcje, ale co od razu rzuca sie zapewne w oczy to to , ze za kazdym razem gdy uruchamiana jest jakas funkcja od nowa nastepuje połączenie z bazą danych. np:
$totals = new TotalsTable(new MysqlDatabase('localhost','root', 'wmateusz', 'spam'));
Gdzie new MysqlDatabase to klasa w ktorej konstruktorze nastepuje połączenie z bazą danych, ponadto w powyzszyf funkcjach znajdują sie petle foreach, wiec z kazda iteracja petli jest inicjowane nowe polaczenie z baza.
Prosilbym o wskazówki jak zoptymalizowac kod, zeby tyle razy nie wywolywac połączenia z baza.......
(tak na marginesie, nie wiem czy tego nie powinienem pisac w innym dziale....bo tak z przyzwyczajenia wszystko wrzucam do przdszkola..)