DarkSide Posted October 25, 2006 Author Report Share Posted October 25, 2006 varbūt ka var, bet vēl pavasarī mysql storētās procedūras bija diezgan vājas, tik brīvi kā pl/sql rakstīt nevarēsi.Vot, vot - paskatījos iekš tā iepostotā linka - nav vērts ķēpāties. Pagaidām izskatās, ka MySQL stored procedures vēl arvien ir tikai lieka laika tērēšana un ķēpa.By the way - kāda ir pieredze darbā ar šādu komplektu: Windows+Apache2+PHP5+Oracle10g? Oracle10g man šķiet arī izlaida freeware produktu ar kautkādiem ierobežojumiem (šķiet <2Gb datubāzes izmērs vai kautkas tāds), varbūt nākotnē tomēr tādus nopietnākus projektus taisīt uz Oracle nevis MySQL bāzēm? Kā PHP ar Oracle sadzīvo? Link to comment Share on other sites More sharing options...
bubu Posted October 25, 2006 Report Share Posted October 25, 2006 Starp MySQL un Orākli eksistē jau arī PostgreSQL. Link to comment Share on other sites More sharing options...
andrisp Posted October 25, 2006 Report Share Posted October 25, 2006 Ir arī vēl Firebird 1.5, bet PostgreSQL laikam tomēr advencētāks un labāk dokumentēts. Link to comment Share on other sites More sharing options...
GedroX Posted October 25, 2006 Report Share Posted October 25, 2006 Apstrādā datus iekš C. =) Nav nekad īsti mēģināts, bet tādās lietās tas ir ļoti spēcīgs paņēmiens. Link to comment Share on other sites More sharing options...
Gundars Posted October 25, 2006 Report Share Posted October 25, 2006 (edited) Principā jau vēl eksistē arī šītāds variants: Paprieksh izpildi tikai vienu company un orders attlasishanu SELECT c.cname, o.oname, FROM contract c LEFT JOIN orders o ON (c.cid=o.cid AND o.is_deleted='F') WHERE c.is_deleted='F' peec tam cikla , katram attlasi vajadzigos orderus. select w.wname on works where o.oid=w.oid AND w.is_deleted='F' Pieaugs queriju skaits, bet pamatigi samazinasies MB skaits, kas tiek dzenaats shurputurpu... Edited October 25, 2006 by Gundars Link to comment Share on other sites More sharing options...
Delfins Posted October 25, 2006 Report Share Posted October 25, 2006 U jā, ja panesās topiks par DB, tad silti iesaku Postgre. Arī ideja par atdalīto SQL nav slikta... ja vien pirmajam nav daudz ieraksti (<20)... citādi tas viss nonāks pie servera overloada... SQL serverim dažreiz ir vieglāk izdalīt 100Mb kluci, nekā 100 reizes pa 1Mb Nu tur ir jāskatās QueryAnalyzer... cik tavs SQL `izmaksā` (ir tāds termins RDBMS: `CPU Cost`)... Link to comment Share on other sites More sharing options...
DarkSide Posted October 25, 2006 Author Report Share Posted October 25, 2006 Principā jau vēl eksistē arī šītāds variants: Paprieksh izpildi tikai vienu company un orders attlasishanu peec tam cikla , katram attlasi vajadzigos orderus. Pieaugs queriju skaits, bet pamatigi samazinasies MB skaits, kas tiek dzenaats shurputurpu...Tāds man bija pats pirmais variants, kādu iesākumā biju uzkodējis. Baigi forši var DB serveri sēdināt ar ~16'000 selectiem kādu 10-20sek laikā :) U jā, ja panesās topiks par DB, tad silti iesaku Postgre.Kautkā tas Postgre mani neaizķēra. Biju uzinstalējis, neko nemācēju izdarīt (neesmu jau galīgs iesācējs, bet...) un tik pat ātri noinstalēju nost :)Nu tur ir jāskatās QueryAnalyzer... cik tavs SQL `izmaksā` (ir tāds termins RDBMS: `CPU Cost`)...Zinu kas ir CPU cost, taču vai kautkur ir pieejams freeware kautkāds zofts, kas analizētu MySQLa selectus? Vienīgais, ko šad tad ir gadījies izmantot ir EXPLAIN SELECT... un tas nedod CPU cost, bet gan tikai dažus parametrus, kuru tabulu ar kuru salinko un kādus indeksus izmantos, bet CPU cost kā tādu acīmredzot MySQL nemaz nerēķina? Link to comment Share on other sites More sharing options...
hmnc Posted October 25, 2006 Report Share Posted October 25, 2006 postgres ir spēcīgs, ja māki viņu izmantot un galvenais - ja tev to vajag. par mysql nepiemērotību kaut kur lasīju diskusiju un izrādās, ka yahoo, wiki u.c. lielie sēž tieši uz mysql. varbūt pa šo laiku situācija ir mainījusies, neņemos spriest Link to comment Share on other sites More sharing options...
Delfins Posted October 25, 2006 Report Share Posted October 25, 2006 Nu tad apstrādā, tā kā jau teica - outputs uzreiz, nevis bāzt viņu masīvā... Masīvos likt tikai kopsummas. PS: PG 8.x ir pavisam cita štelle... bet tas jau neattiecās uz PHP atmiņas menedžēšanas :) Link to comment Share on other sites More sharing options...
Roze Posted October 25, 2006 Report Share Posted October 25, 2006 2,3) Nu es jau to arī tāpēc daru ar PHP ar tiem nežēlīgajiem foreachiem.Nepareiza pieeja.. jādara būtu apmēram šādi: $result = mysql_query("... ''); while($row = mysql_fetch_assoc($result)) { $total[params1][params2] += $row[value]; $total[params1] += $row[value]; $total += $row[value]; } Kur tu idejiski iegusti vairākdimensionālu masīvu (protams var dalīt atsevišķos varibļos), kurā var sagāzt katras kategorijas countus nu vai kaut kā tā.. Šādi tev nav nepieciešams ģenerēt gatavus masīvus un cikloties tiem cauri bet gan tu pa taisno no SQL resulseta jau vāc sev nepieciešamos skaitļus. Protams var uzrakstīt arī COUNT() kverijus SQL db serverim. Par memory_limit, man uz izstrādes vides (Win+Apache+PHP4) memory_limit=8M un viss izgriežas (pat ja Apache process TaskManager var redzēt, ka noēd brīžiem 200Mb RAM), bet uz produkcijas vides (Linux+Apache+PHP4) memory_limit=50M un procesi kas apēd vairāk par ~50Mb RAM neizgriežas...Kā tā var būt? Vai tiešām sanāk tā, ka Windows tas PHP parametrs ir pie pak..ļas, bet Linuxam nē??? Šķiet ka līdz kādai 5.1 versijai windows buildi ir bez eneiblota memory limita.. Link to comment Share on other sites More sharing options...
Recommended Posts