WooCommerce cu mii de produse - site-ul este foarte lent - optimizare interogări baze de date?

22 oct. 2012, 20:26:19
Vizualizări: 23.4K
Voturi: 3

Până acum am aproximativ 8.000 de produse în WooCommerce și pagina de produse din frontend durează câteva secunde pentru a se încărca, chiar și după activarea cache-ului.

Furnizorul meu de VPS sugerează că ar trebui să am mai multe baze de date.
Este aceasta metoda corectă și dacă da, cum este posibil?

Orice sugestii pentru accelerarea interogărilor din baza de date sau pur și simplu pentru optimizarea frontend-ului ar fi grozave.

1
Comentarii

Am descoperit că unul dintre factorii care încetinesc WooCommerce poate fi dimensiunea tabelei meta (aici găsiți postarea mea mai detaliată cu date suport: http://www.danielauener.com/slow-woocommerce-many-products/). Dacă nu puteți evita acest lucru, recomandările mele sunt un server mai puternic sau ElasticSearch.

daniel.auener daniel.auener
6 mar. 2017 19:44:26
Toate răspunsurile la întrebare 3
4

Aceasta este de fapt o problemă de server și nu una specifică WordPress.

Întâmpinați o limitare de viteză a serverului MySQL la 1and1. Din păcate, aceștia sunt cunoscuți ca fiind un gazdă shared lentă, iar din acest motiv, mă îndoiesc că serviciile lor VPS sunt mai bune.

Cache-ul și un CDN vă vor ajuta doar într-o anumită măsură. Aveți nevoie de mai multă putere de procesare sub formă unui server MySQL mai bun și mai rapid, iar dacă deja plătiți pentru un VPS, ar fi bine să vă mutați la un furnizor de VPS mai bun, cum ar fi Media Temple.

Odată mutat acolo, cu acces root, puteți folosi un utilitar precum http://mysqltuner.com pentru a înregistra și analiza performanța serverului MySQL și pentru a ajusta memoria serverului și parametrii cache-ului de interogări din baza de date în fișierul de configurare my.cnf. De asemenea, veți putea ajusta Apache - în httpd.conf - pentru a gestiona sarcini mari.

Nu prea are sens să încercați să optimizați interogările bazei de date făcute de WooCommerce sau WordPress; orice modificări efectuate vor trebui făcute din nou după actualizări.

30 oct. 2012 01:18:51
Comentarii

Încerc WP Super Cache, dar nu prea a ajutat. Am încredere în server, dar 1and1 susține că e vorba de codul site-ului, poți să arunci o privire rapidă și să confirmi? http://s15430161.onlinehome-server.com/shop/product-category/dark-horse/ doar dă click pe una din miniaturile de benzi desenate.

A, și momentan sunt aproximativ 13.000 de produse în baza de date.

Stephen Stephen
30 oct. 2012 19:39:12

@ comentariul de mai sus, am cache-uit câteva, deci dacă se încarcă instant, încearcă altul.

Stephen Stephen
30 oct. 2012 19:58:38

Uită de încercările de cache. Dacă ai acces root pe acel VPS, verifică fișierul my.cnf și rulează mysqltuner.pl pentru a optimiza MySQL.

markratledge markratledge
1 nov. 2012 06:31:36

Nu este o problemă de performanță în MySQL - se datorează unui cod prost scris în WooCommerce și WordPress care parcurge fiecare produs din baza de date folosind PHP doar pentru a număra produsele din fiecare categorie. Pe serverul meu, interogarea MySQL pentru 100.000 de produse se execută în 0,3 secunde, dar folosind PHP-FPM de bază, pagina se încarcă în 185 de secunde (pe un VPS cu 8 nuclee!). Când folosesc HHVM în schimb, timpul scade la 10 secunde.

Dave Hilditch Dave Hilditch
15 ian. 2015 01:23:16
0

Am două soluții pe care ți le-aș sugera și care ar rezolva problema ta. Ori să recurgi la utilizarea elasticsearch.com pentru a popula toate indexurile de produse. În același timp, îți îmbunătățești semnificativ capabilitățile de căutare ale site-ului (dacă este integrat corect). Aș avea grijă să plasez soluția elasticsearch pe un server diferit.

Cred că sistemul tău de caching nu este configurat corect sau serverul tău este supraîncărcat. O soluție care ar putea fi cea mai ieftină (opțiunea #2) ar fi să folosești serverele gratuite de caching de la cloudflare.com. De obicei, aceasta îți va rezolva problema în cel mai cost-effective mod, dacă nu vrei să te ocupi de optimizări la nivel de server.

30 oct. 2012 01:02:13
0

Caching-ul cu Varnish este cea mai bună soluție, totuși trebuie să evitați stocarea în cache a fragmentului de coș din antet și a paginilor de coș/finalizare comandă. Cred că WooCommerce ar trebui configurat cu Varnish Edge Side Includes. Pentru a exclude finalizarea comenzii, urmați aceste instrucțiuni:

http://docs.woothemes.com/document/configuring-caching-plugins/#section-3

28 apr. 2014 11:02:24