KamilPL Posted February 25, 2019 Share Posted February 25, 2019 Co przechowują 2 największe tabele w bazie presty: pl_connections pl_quest Link to comment Share on other sites More sharing options...
Daresh Posted February 25, 2019 Share Posted February 25, 2019 Dane na temat odwiedzin sklepu, czyli kto kiedy wszedł na stronę. Do regularnego czyszczenia tych tabel polecam moduł Tidy. Link to comment Share on other sites More sharing options...
KamilPL Posted February 25, 2019 Author Share Posted February 25, 2019 obie tabele za to odpowiadają? Tak podejrzewałem że to jakieś statystyki. Jak wyczyszczę ręcznie w SQL to nic się dla sklepu poza statystykami nie stanie? Link to comment Share on other sites More sharing options...
Daresh Posted February 25, 2019 Share Posted February 25, 2019 nic się nie stanie Link to comment Share on other sites More sharing options...
hakeryk2 Posted February 25, 2019 Share Posted February 25, 2019 (edited) Usunięcie ps_guest usunie też ludziom niezrealizowane koszyki. Ponadto wątpie byś potrzebował modułu Kopalnia danych dla statystyk (statsdata) więc możesz go wyłączyć bo zapewne i tak korzystasz z Google Analytics jako źródła statystyk. Wrzuć to np do folderu z jakimś modułem np do modules/mailalerts lub dowolnego jakiego chcesz i odpal link do niego adressklepu.pl/modules/mailalerts/dbclean.php - plik do pobrania pod kodem <?php require_once(dirname(__FILE__).'/../../config/config.inc.php'); // https://gist.github.com/julienbourdeau/cca88e986a75e19488c2397f1386a3dc /* --- REMOVE CONNECTIONS FOR STATS ONLY ---*/ $sql = 'DELETE c, cs FROM ps_connections c LEFT JOIN ps_connections_source cs ON (c.id_connections = cs.id_connections) WHERE c.date_add < "'.pSQL(date('Y-m-d H:i:s', strtotime('-1 months'))).'"'; if (Db::getInstance()->execute($sql)){ echo 'Connections cleared<br>'; } else { echo 'Connections not cleared<br>'; } Db::getInstance()->execute('OPTIMIZE TABLE ps_connections, ps_connections_source'); /* --- REMOVE CONNECTIONS FOR STATS ONLY ---*/ /* --- REMOVE OLD CARTS THAT WAS NEVER USED ---*/ if (Db::getInstance()->execute(' DELETE FROM `'._DB_PREFIX_.'cart` WHERE id_cart NOT IN (SELECT id_cart FROM `'._DB_PREFIX_.'orders`) AND id_guest NOT IN (SELECT id_guest FROM `'._DB_PREFIX_.'guest`) AND date_upd < "'.pSQL(date('Y-m-d H:i:s', strtotime('-2 months'))).'" ')){ echo 'Carts cleared<br>'; } else { echo 'Carts not cleared<br>'; } Db::getInstance()->execute('OPTIMIZE TABLE ps_cart'); /* --- REMOVE OLD CARTS THAT WAS NEVER USED ---*/ // REMOVE GUEST INFOS if (Db::getInstance()->execute(' DELETE g FROM ps_guest as g LEFT JOIN ps_cart as c ON g.id_guest = c.id_guest LEFT JOIN ps_connections as con ON g.id_guest = con.id_guest WHERE id_cart IS NULL AND con.id_guest IS NULL ')){ echo 'Guest cleared'; } else { echo 'Guest not cleared'; } Db::getInstance()->execute('OPTIMIZE TABLE ps_guest'); /if (Db::getInstance()->executeS(' DELETE FROM `ps_pagenotfound` WHERE `date_add` < "'.pSQL(date('Y-m-d', strtotime('-1 months'))).'" ')){ echo '404 cleared'; } else { echo '404 not cleared'; } dbclean.php Edited February 25, 2019 by hakeryk2 (see edit history) Link to comment Share on other sites More sharing options...
Daresh Posted February 25, 2019 Share Posted February 25, 2019 Na pewno usunie? Właśnie sprawdziłem na testowym sklepie usuwając guest i nie wpłynęło to w żadnej sposób na mój koszyk. Link to comment Share on other sites More sharing options...
hakeryk2 Posted February 25, 2019 Share Posted February 25, 2019 Hmmm, też w sumie też odpaliłem i nic się nie stało, ale jeśli korzysta z modułu statsdata to wtedy potraci te informacje. Tak czy siak warto skrypcik wrzucić gdzieś i odpalić crona by raz na tydzień usuwał te śmietki Link to comment Share on other sites More sharing options...
Piotr K. Posted February 26, 2019 Share Posted February 26, 2019 Czyszczenie wszystkiego z tych tabel nie usuwa koszyków ale kasuje powiązania z osobami odwiedzającymi czyli mimo, że sklep pamięta koszyk to osoba wracająca nie dokończy zamówienia. Czyszczenie starych danych pozbawia nas informacji o źródłach pozyskania klienta, ilościach jego odwiedzin itp. Najważniejsze to kasować zbędne śmieci (choćby dane o wejściach botów które nie powinny być w ogóle zbierane), wartościowe dane można zostawiać o ile nie mamy tysięcy odwiedzających dziennie - względnie dodać dodatkowe warunki kasowania/zostawiania danych zależnie od potrzeb. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now