MEGYEK HAZA A MELÓBÓL MINDJÁRT JEAH!!!
fejlesztés - 2011 október - 6 megfelelő bejegyzés
Jelöld be, hogy főbb mely kategóriákat akarod olvasni, vagy ha csak egyet: kattints a nevére.
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.
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.
- PHP optimalizálás
- Jenkinses elemzés a kódra
- CPD és PMD checkre van szükség
- XHPROF elemzés
- Jenkinses elemzés a kódra
- DB optimalizálás
- CT mérés javítása
- Ne okozzon table lockot a CT mérés során keletkező INSERT-ek és UPDATE-ek. Lehetőségek: delayed vagy low priority.
- MySQL 5.5 percona frissítés
- Adatok elemzése
- Nagy méretű táblák elemzése, törlési, archiválási stratégiák kialakítása és a szerkesztőséggel egyeztetés.
- InnoDB storage engine használat
- Query optimalizálások
- Queries not using indexes lekérdezések optimalizálása
- Slow query optimalizálás
- Jetprofiler elemzések
- Táblák particionálása
- CT mérés javítása
- Kereső optimalizálás, Sphinx bevezetés
- Admin és frontend kereső átalakítása
- Feleslegessé vált indexek törlése
- Admin folyamatok optimalizálása
- Workflow felülvizsgálata, tapasztalatok implementálása
- HTML, JS, CSS optimalizálás
- http://gtmetrix.com/ javaslatok alkalmazása
Na ez például egy remek szakmai fejlődési program.
Igazából nem kéne meglepődnöm. Abban a szobában kb. 40 projektnek a fejlesztése zajlik, rengeteg külsős cégnek adnak ki megbízásokat a senior fejlesztőink. Csupa ilyen arccal vagyok körülvéve, juniorok nem nagyon dolgoznak a Sanomában, mert a legtöbb projektet kizárólag külső erőforrásokkal fejlesztik, plusz a hotfixeket belül, meg a deploy, üzemeltetés, ilyesmi. A lényeg hogy rengeteg tudás koncentrálódik körülöttem, és ha jól csinálom akkor rengeteget profitálhatok az itt eltöltött időből. Sajnos ebből a szobából hamarosan ki leszünk emelve egy kevésbé szakmai közegbe, de lobbizni fogok hogy tarthassam minél jobban a DPO-s kapcsolataimat.
Vettem egy phpstorm licenszet. Jóság.