sql - 9 megfelelő bejegyzés.

Mutass mindent

Jelöld be, hogy főbb mely kategóriákat akarod olvasni, vagy ha csak egyet: kattints a nevére.


mindet
jan
feb
már
ápr
máj
jún
júl
aug
sze
okt
nov
dec
2011
-
-
-
-
-
-
-
-
-
-
-
2010
-
-
-
-
-
-
-
-
-
-
-
2009
-
-
-
-
-
-
-
-
-
-
-
2007
-
-
-
-
-
-
-
-
-
-
2006
-
-
-
-
-
-
-
-
-
-
-
2004
-
-
-
-
-
-
-
-
-
-
-
Haszprus

Query optimalizálás

©   Haszprus   |   fejlesztés sanoma sql

30 másodperces query:

SELECT webshop_id,
  w.name,
  w.hidden,
  (SELECT count(*) FROM prices 
    WHERE webshop_id=w.webshop_id)
    AS prices_count,
  (SELECT count(*) FROM prices 
    WHERE webshop_id=w.webshop_id and deleted=1)
    AS deleted_count,
  (SELECT count(*) FROM prices 
    WHERE webshop_id=w.webshop_id and product_id>0
     and skipped=0 and deleted=0)
    AS paired_count,
  (SELECT count(*) FROM prices 
    WHERE webshop_id=w.webshop_id and skipped=1 and deleted=0)
    AS skipped_count,
  (SELECT count(*) FROM prices 
    WHERE webshop_id=w.webshop_id and skipped=0
     and product_id=0 and deleted=0)
    AS waiting_count 
  FROM webshops w
  WHERE w.book_shop = 0 
  HAVING prices_count>0 
  ORDER BY w.name

6 másodperces query:

SELECT w.webshop_id, w.name, w.hidden, 
  x.prices_count, x.deleted_count, x.paired_count, 
  x.skipped_count, x.waiting_count
  FROM webshops w
  JOIN (
    select p.webshop_id,
    count(*) AS prices_count,
    sum(deleted) 
      AS deleted_count,
    sum(if(product_id > 0 and skipped = 0 and deleted = 0, 1, 0)) 
      AS paired_count,
    sum(if(skipped = 1 and deleted = 0, 1,0)) 
      AS skipped_count,
    sum(if(skipped = 0 and product_id = 0 and deleted = 0, 1, 0)) 
      AS waiting_count
    from prices p
    group BY webshop_id
    HAVING prices_count > 0
    ORDER BY webshop_id
  ) AS x
  ON x.webshop_id = w.webshop_id
  WHERE w.book_shop = 0
  ORDER BY w.name

Note: ez a bejegyzés évekkel azután lett publikus hogy a rendszert lecserélték egy másikra.

Haszprus

Sanoma day 25

©   Haszprus   |   energiablog fejlesztés sanoma sql

Pár napja megbeszéltünk egy feladatot az Atyaúristennel és a juniorommal. Az atya elment szabira. A juniorom előadta a dolgot a technikai pm-nek, aki egy iszonyat optimizer csávó, komolyan fekete mágia amit sql query optimalizálásban lenyom, közölte, hogy ezt a dolgot nem lehet megoldani, mert van benne egy akkora descartes szorzat amit a világegyetem összes szerverével se fogunk tudni kiszolgálni. Persze égett a képem, de nem volt semmi az ügyből. Ma este ahogy hazamentek már a népek és csillapodott a nyüzsi a Sanomában, eszembe jutott egy remek ötlet amivel szerintem lineárisan halál lazán végigmászhatunk a db-n, baromira nem lesz descartes szorzat, kb. a tábla mérete lesz 2-vel szorozva a szükséges lépések száma, és annyira jó érzéssel jöttem el 19-kor (még maradtam volna, csak időre mentem), hogy ihaj. Remélem meg tudjuk oldani így.

Haszprus

Négy éves a blog

©   Haszprus   |   ajax blog design első fejlesztés haszprus javascript rss sql

Bezony.

Ezenkívül volt egy csomó olyan dolog, amiknek a felszínen nem sok látszata van, a háttérben viszont igencsak, ezért technikai/webdev érdeklődésűeknek javaslom a history felkeresését, mert ezekről csak ott ejtettem néhány szót.

Bár nem a bloghoz tartozik, de ezen időszak alatt megküldtem a Haszprus Private Galleryt egy igen durván cache-elő javascripttel és egyéb js-es feature-ökkel, úgy mint pl. onthefly szerző szerinti szűkítés, képek lapújratöltés nélküli megjelölése.

Végül pedig néhány screenshot a tervezett 3.0-s designról, amire nem tértünk át.

Haszprus

draw_table_from_array()

©   Haszprus   |   css fejlesztés howto php sql

Gyakran előjövő probléma, hogy a látogatónak szeretnénk megadni a lehetőséget a táblázataink rendezhetőségére. Erre nyújt megoldást a draw_table_from_array függvényem, amelyet egy munkám során hoztam létre. Nemcsak egyforma (teljesen css-ből formázott) megjelenést nyújt a táblázatoknak, de erőfeszítés nélkül lehetővé teszi, hogy bármely oszlop szerint rendezzük őket. Egy-egy tábla előállításához a kód pusztán ennyi, az sql lekérdezéstől a felhasználó által rendezhető tábla megjelenítéséig:

Az eredmény:


A dolog működése élőben is kipróbálható [itt egy link volt, közben meghalt].

Haszprus

Születésnapos dumagépek

©   Haszprus   |   fejlesztés howto sql

Shamalt sajnos ehhez már túl öreg, de ha nem maradt volna le róla, akkor így indulna a Születésnapos dumagépek doboz, a szemléltetés kedvéért.

Ez a feature csak a nagyobb topicokban és a megfigyelőközpontban fog titeket rettegésben tartani.

A doboz mögött egyébként egy osztály, némi adatbázis, egy html fájl, és egy csodaszép 13 soros sql lekérdezés áll. Beágyazott lekérdezések rule! Istenem, mennyire jó hogy mysql verziót váltottunk + szglab5 rulez da world, akármekkora szopatás is!

select   u_id, u_pubnick, round(fage) as age, comment_count
from     (
         select   u_id, u_pubnick, u_regged, u_lastload,
                  (to_days(now()) - to_days(u_regged))/365 as fage,
                  count(k_id) as comment_count
         from     hb_users, hb_komment
         where    to_days(now()) - to_days(u_regged) between 355 and 370
              and k_uid = u_id
         group by k_uid
         ) as subquery
where    to_days(now()) - to_days(u_lastload) < 365 
      or comment_count >= 2
order by age desc

Egész biztos vagyok benne, hogy a fenti sql query több érdeklődő olvasómnak is rejteget újdonságokat, ezért remélem nem haragusztok, hogy beidéztem

Haszprus

SQL átépítés

©   Haszprus   |   fáradtság fejlesztés haszprus meló sql

IRCQuote fight! In the ring:

Haszprus blogja - átalakítás alatt
Hali.

A site adatbázisát némiképp átírom, remélhetőleg pár óra alatt megvagyok vele. Addig a lap nem elérhető.

Udv: Haszprus
update 13:38 tévedtem, kurvanagy meló lesz Kb. 107 mezőt neveztem át, és a kódban áttérek a mysql_fetch_row-ról mysql_fetch_array-re. Közel 300 KB kódot kell átnéznem és rengeteg helyen megváltoztatnom.
update 14:00 hát ez kurvaunalmas, eddig 20 KB cuccban írtam át a dolgokat, és várható hogy ezután még lassabban fogok haladni, mert eddig még csak olyan kódrészen jártam ahol már mysql_fetch_array-t használtam eleve
update 14:35 pause. it's killing me.
update 14:52 44 KB átnézve.
update 15:10 86 KB átnézve.
update 15:21 sok bugfix, 88 KB átnézve.
update 15:24 megjelenik az oldal vázának egy része
update 15:29 éhes vagyok, álmos vagyok.
update 16:19 112 KB átnézve.
update 17:14 147 KB. 40 KB múlva megy publikussá a dolog. Ha valami bugot találtok majd, legyetek szívesek, szóljatok, előre is thx.
update 17:32 az olvasókat érintő 181 KB-nyi kód (miért nem 300? mert 100 KB az admin felület kapásból, és voltak dolgok amiket töröltem) frissítésre került, picit tesztelgetek, aztán újra megy a site.
18:30, a lap újra elérhető. Jó sok bugfixelni-való volt.