Topic: Naudoti PDO ar MySQLi stambesniam projektui?

Sveiki,
PDO privalumai 12 duomenų bazių palaikymų, užklausų duomenų vertimas į objektus ir pan.
MySQLi daugeliu atvejų yra greitesnė

čia paėmiau vieno vartotojo atliktus testus:

"SELECT NULL" -> PGO() faster by ~ 0.35 seconds
"SHOW TABLE STATUS" -> mysqli() faster by ~ 2.3 seconds
"SELECT * FROM users" -> mysqli() faster by ~ 33 seconds
Note: by using ->fetch_row() for mysqli, the column names are not added to the array, I didn't find a way to do that in PGO. But even if I use ->fetch_array() , mysqli is slightly slower but still faster than PGO (except for SELECT NULL).

Projektas bus didelis, darbuosiuosi su MySQL DB. Ką patartumėte?  MySQLi ar PDO?
Ačiū.

Re: Naudoti PDO ar MySQLi stambesniam projektui?

Neaišku ką tu laikai "dideliu projektu". Nes dideli projektai jau naudoja kitas sistemas.

Lygegrečioje temoje buvo trumpa nuoroda apžvelgianti esminius skirtingų draiverių skirtumus:
http://www.php.net/manual/en/mysqlinfo.api.choosing.php
http://dev.mysql.com/doc/refman/5.5/en/ … osing.html

Tau tikriausiai reikėtų kelti tavo projekto reikalavimus ir žiūrėti kas labiausiai juos atitinka, nes tokio "kas geriau" nelabai ir yra.

Re: Naudoti PDO ar MySQLi stambesniam projektui?

Ką turėjote omeny "kitas sistemas"? Oracle/Java ar dar kažką? Naudojama bus MySQL/PHP. Lentelių kiekis gali būti apie 150, o įrašų kiekis kai kuriose lentelėse pasieks 100 mlj. ir daugiau. Kiekvieną dieną ji greitu tempu bus pildoma ir greitai augs.

Re: Naudoti PDO ar MySQLi stambesniam projektui?

Oracle gali naudoti ir su PHP. Ne tai turėjau omenyje, o labiau "big data" systemas.

Bet esmė ta pati - pirma planuojama sistema turi kelti reikalavimus duomenų bazės sistemai. O ne taip, kad pasirenkama dbvs ir tada galvojama, kaip ant jos pakurti projektą.

Re: Naudoti PDO ar MySQLi stambesniam projektui?

Dėkui už atsakymus, bet situacija tokia, kad Oracle neišeis diegti, tai gal MySQL tokiu atveju nebus mažoka?

Re: Naudoti PDO ar MySQLi stambesniam projektui?

Aš apie Oracle tik užsiminiau, kad tai nebūtinai VIEN TIK SU JAVA naudojama sistema.

Be MySQL'o ir Oracle yra dar koks tūkstantis duomenų bazių valdymo sistemų. Tarp kurių yra ir sistemų skirtų grynai laikyti/operuoti su ypač dideliais duomenų kiekiais.

Dažnai moderniuose - dideliuose projektuose yra naudojamos daugiau negu viena dbvs - skirtingoms funkcijoms parenkamos labiausiai tinkamos sistemos....

Skaitei tas nuorodas kur daviau, kur pagal funkcionalumą gali pasirinkti tinkamesnį mysql draiverį?

Ką tu su 100m įrašais darysi?

Re: Naudoti PDO ar MySQLi stambesniam projektui?

Kaip supratau Mysqlnd rekomenduojama biblioteka šiuo metu, plius ji gali kešuoti. Bet ji dirba ir su mysqli ir su PDO. Ten nebuvo išskirta PDO ir mysqli skirtumų.
Domėjausi NoSQL DB, bet negaliu sakyti kad jas išmanau. Nors daug kas jas rekomenduoja, bet skaičiau ir labai neigiamų nuomonių.
O kas liečia 100m, tai čia vienas iš ES projektų, kažkas panašaus į žinyną, kuris teko man. šiandien dar viską apmąstau.  Oracle tai ten tikrai niekas nepirks, nuomojasi serverius tik su MySQL.
O kaip jūs manote su tiek įrašų ir sakykim jei bus keletas TB infos DB - MySQL pavežtų ar reikia dairytis į kokias NoSQL

Re: Naudoti PDO ar MySQLi stambesniam projektui?

Mano manymu geriau naudoti mysqli, nes ji palaiko daugiau galymybių nei PDO, be to php kūrėjai rekomenduoja taip pat mysqli. Ar aš teisus?

Re: Naudoti PDO ar MySQLi stambesniam projektui?

Sunku, nes nesupranti ko aš klausiu: ką tu su tais turimais duomenimis darysi? Kokios operacijos? Kiek, kokių operacijų per laiko vienetą. Kas įeina į 1 įrašą?

Pasikartosiu: tavo uždavinys turi kelti reikalavimus sistemai, ir pagal tuos reikalavimus sistema turi būti parinkta. O ne atvirškčiai: tipo turiu va mysql serverį, tai dabar kaip man ant jo čia užmauti kažką.

100m įrašų, po vieną baitą gali būti labai nedidukė duomenų bazė. Jeigu toliau svaigstant, kad nieko su tais duomenimis nebus daroma, tai gali juos laikyti duomenu_baze.txt (-;

Apie Mysqlnd ne taip supratai.

Serverių nuoma "tik su mysql", tai čia kas, shared-hostingas?

Re: Naudoti PDO ar MySQLi stambesniam projektui?

hdoitc wrote:

Mano manymu geriau naudoti mysqli, nes ji palaiko daugiau galymybių nei PDO, be to php kūrėjai rekomenduoja taip pat mysqli. Ar aš teisus?

Neteisus. O jeigu tau reikės "client-side Prepared Statements"? Kas tada?

Re: Naudoti PDO ar MySQLi stambesniam projektui?

Duomenų bazė, kaip ir aukščiau minėjau užims apie 2 - 3 TB. Programa kaip žinynas - paieška pagal įvairius kriterijus. į vieną įrašą gali įeiti 20 reikšmių ir daugiau. Dauguma stulpelių su int.
client-side Prepared Statements nemanau kad reiks.
Ačiū už atsakymus.

Re: Naudoti PDO ar MySQLi stambesniam projektui?

Aš kažkaip nedrįsčiau dėti kelių TB į mysql. Aišku nežinoma kokio tipo duomenys bus. šiaip geriausias būdas - pageneruoti informaciją ir pasitikrinti kaip veiks... Taip iš oro patarti sunku.

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Naudoti PDO ar MySQLi stambesniam projektui?

šiaip DB renkuosi ne aš - jei įstaiga pasakė kad duos man tik MySQL, tai aš negaliu už savo pinigus nupirkti Oracle ir pan.

Re: Naudoti PDO ar MySQLi stambesniam projektui?

zygis wrote:

Aš kažkaip nedrįsčiau dėti kelių TB į mysql. Aišku nežinoma kokio tipo duomenys bus. šiaip geriausias būdas - pageneruoti informaciją ir pasitikrinti kaip veiks... Taip iš oro patarti sunku.

Duomenys bus varchar ir int tipo pagrinde. O kokią DB siulytumėt? Nors kaip rašiau esu surištas su MySQL, bet norėčiau susižinoti ir kitas galimybes.

Re: Naudoti PDO ar MySQLi stambesniam projektui?

Jei WHERE salygose naudosi varchar tipus - manau kad bus mirtis. Plius abejoju ar su keliais TB nebus apsieita be shardų, tai kaži ar tai vistik bus tavo problema ar tos įmonės :)
Bet kokiu atveju keli TB nėra juokas. Bet jei rinktis negali - tai negaišk laiko, jei vistik nori gaišt - čiupk nosql, tada galėsi sakyt "ar aš nesakiau". O va kurį nosql variantą pasirinkti - tai jau atskira tema.

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Naudoti PDO ar MySQLi stambesniam projektui?

Dėkui už atsakymus, o jei MySQL ir where būtų tik int? čia toks projektas, kad dabar iki galo mane užtikrino kad duomenų MAX gali būti tik iki 1 TB ir tai per kokius 6 metus. Tai dabar galvoju kad užtektų gal ir MySQL?