Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
adept+
HV vaatleja
liitunud: 09.09.2003
|
24.06.2013 18:58:41
Probleem: väga pikk SQL päring |
|
|
Mida teha väga pika SQL päringuga?
Andmebaas on 27 MB, tooteid on alla 500, tavalisi tekstiartikleid u 20 tk. Seega ei tohiks väga suur leht olla.
Paraku igal lingil klikkides avaneb leht vähemalt 6 sekundit.
Tõmbasin andmebaasi arvutisse ja hakkasin vaatama. Näiteks palju infot on tabelites ps_connections ja ps_connections_source (sisaldavad näiteks selliseid viiteid : http://www.google.ee/search?hl=et&source=hp&q=.... jne)
Kas connections tabelite seest võiks ära kõik kustutada ja edaspidi nende salvestamine keelata? Kas see aitaks?
(Tarkvara on Prestashop)
|
|
tagasi üles |
|
 |
cavefish
HV kasutaja
liitunud: 26.08.2003
|
24.06.2013 20:13:40
|
|
|
27mb väga tilluke andmebaas ja see ei tekita kindlasti antud probleemi, kiiruga vaadates oli endal suurim prestashopi andmebaas 350+ MB.
Kas prestashopi enda optimeerimise seaded on paigas?
|
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
31 |
|
tagasi üles |
|
 |
adept+
HV vaatleja
liitunud: 09.09.2003
|
24.06.2013 22:11:06
|
|
|
Praegune teenusepakkuja Zone ütles, et põhjus on pikas SQL päringus.
Mis võib SQL päringu pikaks teha?
(PS seaded ise on siin)
cavefish kirjutas: |
27mb väga tilluke andmebaas ja see ei tekita kindlasti antud probleemi, kiiruga vaadates oli endal suurim prestashopi andmebaas 350+ MB.
Kas prestashopi enda optimeerimise seaded on paigas? |
|
|
tagasi üles |
|
 |
napoleon
Unknown virus

liitunud: 08.12.2008
|
25.06.2013 13:40:15
|
|
|
Mina alustaks sellest, et üritaks kindlaks teha, milline päring siis aeglane on. Kas teenusepakkuja päringut ei andnud kaasa?
Kui saad koopia oma masinas käima ajada, saad abi võibolla siit, teenusepakkuja sul tõenäoliselt seda parameetrit näppida ei luba.
Ma ei tea küll PrestaShop'st midagi, aga teine võimalus on otsida üles koht, kus baasiga suheldakse(eeldatavasti jõuavad kõik päringud ühte kohta kokku) ja kirjutada sinna ise mingi logimine kui PrestaShop-l seda juba olemas pole.
Kui probleemne päring on teada, siis saab edasi uurida, miks see aeglane on, kuidas seda kiiremaks muuta ja/või kas seda päringut üldse iga lehe laadimisega vaja on.
On muidugi ka teine variant, et teenusepakkuja tulistas puusalt ja probleem pole üldse päringu(te)s vaid näiteks mingis PrestaShopi logis, mis nimesid üritab lahendada vms.
|
|
Kommentaarid: 77 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
60 |
|
tagasi üles |
|
 |
adept+
HV vaatleja
liitunud: 09.09.2003
|
25.06.2013 15:11:14
|
|
|
Teenusepakkuja saatis Prestashopi päringu:
Kes nüüd ütleb kuidas see päring lehe avanemise aeglaseks teeb ja mis on lahendus?
Query 1 Sending data SELECT product_shop.id_product, MAX(product_attribute_shop.id_product_attribute) id_product_attribute\n\t\t\t\t\tFROM `ps_product` p\n\t\t\t\t\t INNER JOIN ps_product_shop product_shop\n\t\tON (product_shop.id_product = p.id_product AND product_shop.id_shop = 1)\n\t\t\t\t\tLEFT JOIN `ps_product_attribute` pa ON (product_shop.id_product = pa.id_product)\n\t\t\t\t\t LEFT JOIN ps_product_attribute_shop product_attribute_shop\n\t\tON (product_attribute_shop.id_product_attribute = pa.id_product_attribute AND product_attribute_shop.id_shop = 1 AND product_attribute_shop.default_on = 1)\n\t\t\t\t\tWHERE product_shop.`active` = 1\n\t\t\t\t\t\t AND (( product_shop.`id_product` = 1) OR( product_shop.`id_product` = 26) OR( product_shop.`id_product` = 27) OR( product_shop.`id_product` = 28) OR( product_shop.`id_product` = 23) OR( product_shop.`id_product` = 24) OR( product_shop.`id_product` = 25) OR( product_shop.`id_product` = 142) OR( product_shop.`id_product` = 143) OR( product_shop.`id_product` = 132) OR( product_shop.`id_product` = 8) OR( product_shop.`id_product` = 166) OR( product_shop.`id_product` = 170) OR( product_shop.`id_product` = 171) OR( product_shop.`id_product` = 174) OR( product_shop.`id_product` = 175) OR( product_shop.`id_product` = 181) OR( product_shop.`id_product` = 182) OR( product_shop.`id_product` = 213) OR( product_shop.`id_product` = 172) OR( product_shop.`id_product` = 173) OR( product_shop.`id_product` = 214) OR( product_shop.`id_product` = 177) OR( product_shop.`id_product` = 178) OR( product_shop.`id_product` = 179) OR( product_shop.`id_product` = 215) OR( product_shop.`id_product` = 180) OR( product_shop.`id_product` = 203) OR( product_shop.`id_product` = 204) OR( product_shop.`id_product` = 205) OR( product_shop.`id_product` = 183) OR( product_shop.`id_product` = 184) OR( product_shop.`id_product` = 185) OR( product_shop.`id_product` = 186) OR( product_shop.`id_product` = 187) OR( product_shop.`id_product` = 189) OR( product_shop.`id_product` = 190) OR( product_shop.`id_product` = 188) OR( product_shop.`id_product` = 191) OR( product_shop.`id_product` = 192) OR( product_shop.`id_product` = 193) OR( product_shop.`id_product` = 194) OR( product_shop.`id_product` = 195) OR( product_shop.`id_product` = 196) OR( product_shop.`id_product` = 197) OR( product_shop.`id_product` = 198) OR( product_shop.`id_product` = 199) OR( product_shop.`id_product` = 201) OR( product_shop.`id_product` = 202) OR( product_shop.`id_product` = 206) OR( product_shop.`id_product` = 207) OR( product_shop.`id_product` = 208) OR( product_shop.`id_product` = 209) OR( product_shop.`id_product` = 210) OR( product_shop.`id_product` = 228) OR( product_shop.`id_product` = 229) OR( product_shop.`id_product` = 425) OR( product_shop.`id_product` = 462) OR( product_shop.`id_product` = 463) OR( product_shop.`id_product` = 464) OR( product_shop.`id_product` = 465) OR( product_shop.`id_product` = 466) OR( product_shop.`id_product` = 21) OR( product_shop.`id_product` = 22) OR( product_shop.`id_product` = 19) OR( product_shop.`id_product` = 20) OR( product_shop.`id_product` = 17) OR( product_shop.`id_product` = 18) OR( product_shop.`id_product` = 176) OR( product_shop.`id_product` = 473) OR( product_shop.`id_product` = 200) OR( product_shop.`id_product` = 477) OR( product_shop.`id_product` = 110) OR( product_shop.`id_product` = 293) OR( product_shop.`id_product` = 294) OR( product_shop.`id_product` = 293) OR( product_shop.`id_product` = 294) OR( product_shop.`id_product` = 437) OR( product_shop.`id_product` = 438) OR( product_shop.`id_product` = 439) OR( product_shop.`id_product` = 440) OR( product_shop.`id_product` = 441) OR( product_shop.`id_product` = 442) OR( product_shop.`id_product` = 443)
.............see läheb pikalt.............
OR( product_shop.`id_product` = 493) OR( product_shop.`id_product` = 494) )\n\t\t\t\t\t\tAND p.`id_product` IN (\n\t\t\t\t\t\t\tSELECT cp.`id_product`\n\t\t\t\t\t\t\tFROM `ps_category_group` cg\n\t\t\t\t\t\t\tLEFT JOIN `ps_category_product` cp ON (cp.`id_category` = cg.`id_category`)\n\t\t\t\t\t\t\tWHERE cg.`id_group` = 1\n\t\t\t\t\t\t)\n\t\t\t\t\t AND product_shop.`visibility` IN ("both", "catalog")\n\t\t\t\t\tGROUP BY product_shop.id_product\n\t\t\t\t\tORDER BY RAND() LIMIT 1
|
(See on päris pikk, panin siia ainult alguse ja lõpu)
napoleon kirjutas: |
Mina alustaks sellest, et üritaks kindlaks teha, milline päring siis aeglane on. Kas teenusepakkuja päringut ei andnud kaasa?
Kui saad koopia oma masinas käima ajada, saad abi võibolla siit, teenusepakkuja sul tõenäoliselt seda parameetrit näppida ei luba.
Ma ei tea küll PrestaShop'st midagi, aga teine võimalus on otsida üles koht, kus baasiga suheldakse(eeldatavasti jõuavad kõik päringud ühte kohta kokku) ja kirjutada sinna ise mingi logimine kui PrestaShop-l seda juba olemas pole.
Kui probleemne päring on teada, siis saab edasi uurida, miks see aeglane on, kuidas seda kiiremaks muuta ja/või kas seda päringut üldse iga lehe laadimisega vaja on.
On muidugi ka teine variant, et teenusepakkuja tulistas puusalt ja probleem pole üldse päringu(te)s vaid näiteks mingis PrestaShopi logis, mis nimesid üritab lahendada vms. |
|
|
tagasi üles |
|
 |
napoleon
Unknown virus

liitunud: 08.12.2008
|
25.06.2013 15:21:19
|
|
|
Ma ei tea sellest poe tarkvarast midagi, aga puusalt tulistades paistab probleem umbes selline, et saad määrata mingid promo/avalehe tooted, millest hulgas lehe laadimisel suvaline/suvalised valitakse ja oled kõikidele toodetele selle promo/esilehe linnukese peale pannud. Aga kordan, see on hetkel suht kohvipaksu pealt pakutud ehk lihtsalt uurimiseks, kas kuskil seadistuses on mingi linnuke, mis umbkaudu sellist asja võiks teha.
|
|
Kommentaarid: 77 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
60 |
|
tagasi üles |
|
 |
Equinox
HV veteran

liitunud: 05.04.2002
|
25.06.2013 18:30:23
|
|
|
adept+ kirjutas: |
Teenusepakkuja saatis Prestashopi päringu:
Kes nüüd ütleb kuidas see päring lehe avanemise aeglaseks teeb ja mis on lahendus?
(See on päris pikk, panin siia ainult alguse ja lõpu)
|
Päringu tapab maha ilmselt OR-tehted (500 or-i ei ole just normaalne lähenemine, sisuliselt kui sa ütlesid, et ligi 500 toodet on, siis võetakse kõik korraga or-idega välja, millel pole mingit mõtet) ja võimalik, et pole ka indeksit tabelil sobilikku. Kuidas sellest lahti saada, niisama on raske öelda, sest ei tea sellest Prestashopist midagi. Aga kui saab ja annab koodile/päringule ligi saada siis tuleks see ringi teha.
_________________ Live long and prosper!
RIP, Spock. Leonard Nimoy 1931-2015 |
|
Kommentaarid: 27 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
26 |
|
tagasi üles |
|
 |
adept+
HV vaatleja
liitunud: 09.09.2003
|
26.06.2013 22:36:53
|
|
|
Kas võib olla seos sellega, et peale kolimist teise serverisse + peale domeeni suunamist pildid lehelt ära kadusid mistõttu tuli need Prestashopis (Eelistused ->pildid) uuesti genereerida?
|
|
tagasi üles |
|
 |
Fukiku
Kreisi kasutaja

liitunud: 06.11.2003
|
26.06.2013 23:51:40
|
|
|
Ei tundu väga loogiline, kui aus olla.. Väga perv päring on igatahes.. hea oleks, kui saaks kuidagi ikka koodis sobrades või logisid uurides jälile, et kus seda kasutatakse ja kuidas kokku pannakse. Siis oleks ehk võimalik ka midagi ette võtta.
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
karu
HV kasutaja
liitunud: 08.08.2002
|
27.06.2013 10:54:29
|
|
|
Probleemiks on WHERE ... IN ( SELECT ... ) .... ORDER BY RAND()
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
27.06.2013 17:15:03
|
|
|
Probleem peaks ju suht spetsiifiline olema, kuna tegu ikkagi valmis tehtud mootoriga e-poega, peaks asju saama ajada admin paneelist, ega selline päring lambist tekkida ei saa. Aga kus ja mis tekitab peks keegi just Prestashopi spets ütlema. Otse kusagilt koodist seda vaevalt välja rookima peab, kuna teiste Prestashopid ju ikkagi toimivad.
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
napoleon
Unknown virus

liitunud: 08.12.2008
|
28.06.2013 09:36:52
|
|
|
Just, ühe kohvipaksu pealt vihje andsin, kus viga võib olla. Aga koodi lugemine võib vahel siiski kasulik olla kuna sealt võib mingi idee saada, mis seaded valed on, kui muud moodi probleemist jagu ei saa.
|
|
Kommentaarid: 77 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
60 |
|
tagasi üles |
|
 |
adept+
HV vaatleja
liitunud: 09.09.2003
|
29.06.2013 13:32:27
|
|
|
PS koodi ma muutnud ei ole - hoian programmikoodi puhta. Muutnud ja täiendanud olen pm ainult kujundusmalli. Kuid kujundusmallis probleem olla ei saa - kontrollisin niiviisi et vahetasin default kujunduse peale ja leht oli ikka sama aeglane.
Avalehel on promo tooted 20 tk. Proovisin nii, et keerasin selle mooduli üldse kinni (so Featured products on the homepage), aga lehe laadimine oli ikka sama aeglane.
napoleon kirjutas: |
Ma ei tea sellest poe tarkvarast midagi, aga puusalt tulistades paistab probleem umbes selline, et saad määrata mingid promo/avalehe tooted, millest hulgas lehe laadimisel suvaline/suvalised valitakse ja oled kõikidele toodetele selle promo/esilehe linnukese peale pannud. Aga kordan, see on hetkel suht kohvipaksu pealt pakutud ehk lihtsalt uurimiseks, kas kuskil seadistuses on mingi linnuke, mis umbkaudu sellist asja võiks teha. |
Koduleht on aeglane ükskõik mis lingil klikkides, sh mitte ainult avalehe laadimisel. Aeglane on isegi tavalise väikese tekstiartikli avamisel kus pole pilte sees.
(mitte ainult e-poe avalehe, tootelehtede jm avamisel)
|
|
tagasi üles |
|
 |
kullar
HV kasutaja

liitunud: 26.11.2006
|
|
Kommentaarid: 27 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
25 |
|
tagasi üles |
|
 |
adept+
HV vaatleja
liitunud: 09.09.2003
|
30.06.2013 13:36:30
|
|
|
Kõige uuem PrestaShop™ 1.5.4.1
alustasin 1.5.0.17, olen teinud 1-click Upgrade abil uuendusi.
kullar kirjutas: |
Ka oskad öelda prestashopi versiooni, mis sul kasutusel? |
Mõtled MySQL index optimiseerimist? Ei ole teinud.
kullar kirjutas: |
Kas väljadel on indeksid olemas? Indeksite puudmine teeb lehe väga päris aegalseks. |
Pole temaga muud teinud kui ainult versiooniuuendusi. Kasutusel seaded Teema vahemälu: Never recompile template files ja Vahemälu: sees. Kõik muud on vaikeseaded.
Peale kolimist läks aga eriti aeglaseks.
|
|
tagasi üles |
|
 |
ref
Kreisi kasutaja
liitunud: 10.08.2003
|
|
Kommentaarid: 17 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
15 |
|
tagasi üles |
|
 |
cavefish
HV kasutaja
liitunud: 26.08.2003
|
01.07.2013 00:55:04
|
|
|
Kuna antud päring paistab väljastavat andmed ainult ühe random toote kohta, siis võib tegu olla mõne probleemse värskeid tooteid/eripakkumisi/allahindlusi näitava mooduliga. Proovi neid välja lülitada, kui mõni selline on kasutusel
|
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
31 |
|
tagasi üles |
|
 |
kullar
HV kasutaja

liitunud: 26.11.2006
|
|
Kommentaarid: 27 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
25 |
|
tagasi üles |
|
 |
adept+
HV vaatleja
liitunud: 09.09.2003
|
02.07.2013 21:45:29
|
|
|
Olemasoleva avalehe eripakkumise mooduli lülitasin välja - ei aita (Ise pole ühtegi uut moodulit paigaldanud)
cavefish kirjutas: |
Kuna antud päring paistab väljastavat andmed ainult ühe random toote kohta, siis võib tegu olla mõne probleemse värskeid tooteid/eripakkumisi/allahindlusi näitava mooduliga. Proovi neid välja lülitada, kui mõni selline on kasutusel |
proovin
|
|
tagasi üles |
|
 |
Fukiku
Kreisi kasutaja

liitunud: 06.11.2003
|
02.07.2013 22:43:46
|
|
|
Ei kujuta ette, kas sellist OR tingimuste džunglit enam indeksitega päästab. See on juba ka lihtsalt algusest peale minumeelest väga paha SQL kokku kirjutatud sinna. Huvitav oleks ikkagi teada, kust ta tuleb. Kas meil tõesti ühtki Prestashopi eksperti siin pole, kes täpsemalt hingeelu tunneks?
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
karu
HV kasutaja
liitunud: 08.08.2002
|
03.07.2013 02:35:14
|
|
|
Fukiku kirjutas: |
Ei kujuta ette, kas sellist OR tingimuste džunglit enam indeksitega päästab. See on juba ka lihtsalt algusest peale minumeelest väga paha SQL kokku kirjutatud sinna. Huvitav oleks ikkagi teada, kust ta tuleb. Kas meil tõesti ühtki Prestashopi eksperti siin pole, kes täpsemalt hingeelu tunneks?  |
OR listi peaks MySQL teisendama IN(..) listiks, seega see ei ole probleem.
Probleem (arvatavasti) on modules/blockspecials/blockspecials.php hookRightColumn()
if (!($special = Product::getRandomSpecial((int)$params['cookie']->id_lang)) && !Configuration::get('PS_BLOCK_SPECIALS_DISPLAY'))
return
|
Product::getRandomSpecial() kutsub siis selle SQL välja (arvatavasti)... seda siis vaatamata sellele, et specials väljas on.
--
Lülita catalog mode sisse ja vaata kuidas siis jookseb.
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
adept+
HV vaatleja
liitunud: 09.09.2003
|
03.07.2013 22:02:59
|
|
|
Läks kiireks kohe kui sisse lülitasin (Eelistused->Tooted->kataloogi versioon)
Kuidas nüüd poodi sama kiireks saaks, mis ma edasi pean tegema?
karu kirjutas: |
Lülita catalog mode sisse ja vaata kuidas siis jookseb. |
|
|
tagasi üles |
|
 |
karu
HV kasutaja
liitunud: 08.08.2002
|
04.07.2013 00:30:16
|
|
|
adept+ kirjutas: |
Läks kiireks kohe kui sisse lülitasin (Eelistused->Tooted->kataloogi versioon)
Kuidas nüüd poodi sama kiireks saaks, mis ma edasi pean tegema? |
Proovi muuta 'modules/blockspecials/blockspecials.php' faili hookRightColumn funktsiooni lisades kaldkriipsud 'if' ette
php:
|
public function hookRightColumn($params) { //if (Configuration::get('PS_CATALOG_MODE')) return ;
|
Siis kataloogi versioon välja ja vaata mis saab.
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
adept+
HV vaatleja
liitunud: 09.09.2003
|
04.07.2013 14:44:06
|
|
|
Aitäh, läks küll natuke kiiremaks.
Kui nüüd update teha, kas siis kirjutatakse blockspecials.php faili üle ja muudatus kaob. Et seda ei juhtuks, siis ma peaks selle faili teema kausta panema. Kuidas seda õigesti teha - kas piisab kui lihtsalt kopeerin ainult blockspecials.php faili
/htdocs/themes/default/modules/blockspecials kausta ja muud ei midagi?
karu kirjutas: |
adept+ kirjutas: |
Läks kiireks kohe kui sisse lülitasin (Eelistused->Tooted->kataloogi versioon)
Kuidas nüüd poodi sama kiireks saaks, mis ma edasi pean tegema? |
Proovi muuta 'modules/blockspecials/blockspecials.php' faili hookRightColumn funktsiooni lisades kaldkriipsud 'if' ette
php:
|
public function hookRightColumn($params) { //if (Configuration::get('PS_CATALOG_MODE')) return ;
|
Siis kataloogi versioon välja ja vaata mis saab. |
|
|
tagasi üles |
|
 |
karu
HV kasutaja
liitunud: 08.08.2002
|
04.07.2013 18:20:17
|
|
|
adept+ kirjutas: |
Aitäh, läks küll natuke kiiremaks. |
Muudatus oli 'Specials block' moodulis. Lülita see välja.
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
|