Mysql eljárások Dummies - verem túlcsordulás az orosz
Van két asztalok árut online áruház. Az egyik csak olyan termékeket különböző szolgáltatók, jelezve Vendor ID. A második tartalmazza az összes ára és elérhetősége az egyes termékekre az első táblázatban mindegyik raktárban szolgáltató.
Mivel az SQL nemrég megjelent az életemben egy ilyen léptékű, szükséges segítséget kérni, nem minden magam is megértem.
Röviden az adatok a táblázatok:
Táblázat áruk néz ki
Táblázat árakat, így
Mint látható a képeken, hogy egy terméket lehet, hogy több különböző árakat a különböző boltokban. Írtam egy eljárást az árak átlagosan minden eladó raktáraiban.
Nem mondhatom, hogy én írtam, a tapasztalat nem elég jó, talán zaglyuchit nulla ára vagy mennyisége, de még mindig működik.
A beavatkozást a PHP script -, hogy a kiválasztás minden id, in_id, sup_id asztali elemek és helyettesíti őket az én eljárást, emiatt ciklus felsorolásával maga a minta. durván
Igen, az ötlet a banális és a legtermékenyebb ..
A beavatkozás után táblázatban van töltve teljesen helyes
Valójában az a kérdés: Ki áll rendelkezésre 10000 példány tábla rögzíti a végrehajtás minden az én script veszi, mint 10 perc alatt (egy laptop). Ez nem jó, értem, hogy ha az egyesítés foreach PHP és SQL egy eljárásban, a folyamat megy sokkal gyorsabb. De a tapasztalat nem elég. Mondd, kérlek, optimalizálási technikákat mindez „mintavétel”. A második nap harcolni sql kurzorok és a változók, az eredmény és a megértés 0
meghatározott augusztus 19 '16 at 01:40
Megközelítést, ahol a PHP-szkript telt el a táblázatot, és frissíti a mező minden rekord, persze, nagyon lassú. 10 perc nem annyira. Ha a tábla lesz, meg kell várni sokáig.
Valóban szükség van, hogy a területen az átlagos ár? Ha azt szeretnénk, hogy a termékek listáját az átlagárak, akkor a lekérdezés:
Tudod, hogy egy kérelem alapján az a véleménye, és megtekintheti az eredeti tábla, de egy kiegészítő mezőt tartalmazó átlagolt árát.
Minden ár az összes tárolt a táblázatban. Átlagár kiszámításához kell, mert a fenti táblázatban nem végleges. Mivel az adatok a táblázatban td_items nem egyedi (egy és ugyanazon termék lehet a különböző gyártók különböző sup_id és ugyanaz in_id), egy másik jelentős eljárás egyesíti őket egy döntő asztalra, összehasonlítva az árak között ugyanazokat a hangokat (a cikket, modell és a márka) és kiteszi ez az ár érvényes minimum átlagárak, s megadják azokat szállító. - Andrew Koshkin augusztus 19 '16 at 10:51
Már csak egy kérdés - hogyan lehet a válaszfal td_items összes sort a táblázat az eljárás, kivéve, hogy a feldolgozás során a PHP. Ez most viszem az összes rekordot a táblázatból a PHP, azt megérinti őket, és tegye fel az árat. Akkor végre ugyanazt az eljárást közvetlenül az SQL eljárás? - Andrew Koshkin augusztus 19 '16 at 10:53