Posts Tagged ‘sql’

Benchmark: mySQL vs SQLite vs txtSQL

Scris de Andrei Ruse la data de January 5th, 2010 (adica 3 luni in urma) No Comments »
mysqltxtsqlsqlite
1.000.000 insert operations:437.396926 sec**
1.000.000 update operations:419.479904 sec**
1.000.000 select operations:1590.487754 sec**
10.000 insert operations:4.140236 sec155.204844 sec64.271662 sec
10.000 update operations:7.036401 sec203.391591 sec51.838954 sec
10.000 select operations:3.716212 sec140.175988 sec40.162289 sec
1.000 insert operations:0.492028 sec1.056060 sec4.376249 sec
1.000 update operations:0.272016 sec1.384078 sec4.992284 sec
1.000 select operations:0.404023 sec0.840047 sec2.056117 sec
* = I just don’t have the balls to try that

Momentan lucrez la ideea unui flatfile(sau nu) DB ca varianta transparenta de backup intr-o aplicatie web, in cazul in care mySQL-ul moare.

Pana acum am reusit sa testez ce se vede mai sus, in conditii (zic eu) neutre. Fiecare test a fost facut de 3 ori, si cea mai mica valoare a fost pusa (si asta cred ca e o greseala, pentru ca mySQL face cache la select-uri dupa prima varianta). Serverul de mySQL folosit ruleaza singur pe server (no apache/other stuff), si este folosit si in productie. txtSQL si SQLite au functionat pe un VPS cu 512MB ram, procesor 4 core de 3.2ghz, stocare in RAID 6.

txtSQL mi se pare absolut genial conceput, cu o singura exceptie: stocheaza fiecare tabela intr-un singur fisier, care odata crescut maaare de tot, se misca infect. Din cate am vazut, nu cred ca tine nici un fel de index, lucru care omoara orice iluzie de performanta. Felul in care se construieste un query mi se pare foarte misto (*1). Faptul ca efectiv sunt cateva fisiere care trebuiesc puse alaturi de aplicatia pe care o scriu, e si mai bine.

SQLite este popular pentru development (l-am folosit cand ma jucam cu Ruby on Rails), si dupa cum se vede, destul de bine facut. Cel mai mult imi place ca suporta query-urile de baza exact ca in mySQL, deci intr-o aplicatie ar trebui sa se schimbe doar parametrii conexiunii. Ce nu imi place e ca trebuie instalat din repository/compilat…

*1 :

$sql->select(array(
‘db’ => ‘testDB’,
‘table’ => ‘testTable’,
‘where’ => array(’strtolower(somecolumn) = value’),
‘limit’ => array(10, 19),
‘orderby’ => array(‘id’, ‘ASC’)
));

Webdeveloperii din Romania

Scris de Andrei Ruse la data de December 15th, 2008 (adica 1 an in urma) 11 Comments »

Webdeveloperii din Romania   Image: sqlinjectionSaptamanile trecute am discutat cu cineva, pentru o posibila colaborare in PHP. Adica eu sa ii fac respectivului niste aplicatii. Recomandarea a venit de la skreach, pe care l-as ruga sa isi reconsidere parerea despre cei cu care lucreaza. Cu atitudinea pe care au avut-o, cu siguranta nu sunt cei mai tari.

Discutia a fost clara pe limbajul PHP, cu baze de date, si fisiere. Raspunsul a fost:  “iti voi trimite maine un contract de confidentialitate, ni-l trimiti semnat, si iti trimito descriere a primului proiect“. Am asteptat o zi, i-am atras atentia tipului ca a uitat. Faza a continuat vreo 5 zile, in care eu ar fi tot trebuit sa astept acel contract. Teoretic, daca eram ‘mai adult’, si ma bazam pe un singur job (cel pentru care vroiam colaborarea), muream de foame.

Discutia finala: Aaaaa, pai CSS stii? Si Javascript? Nu? Pai imi pare rau, eu sincer dupa asta ma uitam.

Acum trag eu concluziile mele: Ca project manageri / human resources manager, astia sunt prosti. Clar. De ce? La o scurta vizita pe hackersblog, va lamuriti clar de ce va trebuie programatori php, si nu desgneri. In momentul cand codul php trece prin putine perechi de ochi, este destul de probabil sa fie SQLi vulnerable, XSS vulnerable, sau alte chestii.

Desi e usor sa scrii in formatul $username=htmlspecialchars(mysql_real_escape_string($_POST['username']));  , din cate observ pe net, relativ putini o fac. Daca un site gen GSP.ro, care se presupune ca are buget ok, e SQLi vulnerable cu nesimtire, pai ce sa mai zicem la site-urile mici?

Cateva alte erori banale pe care le-am descoperit:

  • Exista login.php, care daca user&pass sunt corecte, trimit in alta pagina. Celelalte pagini NU verifica nimic gen sesiune. Daca stii url-ul lor, intri direct. Astazi de la scoala am intrat asa in adminul site-ului unei firme. Din greseala pot spune, dar m-am distrat. produse.php era fisierul care mi s-a deschis prima oara,si care avea un meniu frumos pentru restul paginilor.
  • Exista login.html , in care un cod JavaScript verifica username si parola. Eventual codul JS encodat, ca sa ai de ce sa faci o vizita aici.
  • Exista login.php, care face verificarea in baza de date, dar in baza de date exista username “” si password “”. Astfel nu mai trebuie sa te obosesti sa completezi nimic; pur si simplu dai enter. Am vazut aceasta eroare pe una din aplicatiile de la mine din liceu, pe care niste designeri au primit bani seriosi sa o faca. Penibil. De ce nu le-or cere elevilor, nu stiu. :|

Pana una alta, sustin parerea, si concluzionez astfel post-ul. Nu mai cautati designeri, daca nu vreti sa va faceti de cacao masiv. Mie nu mi-a zis nimeni ca site-urile/aplicatiile facute de mine arata naspa. In schimb, ABSOLUT NICI UNA nu a fost sparta pana acum. Si in limita posibilitatilor, cu ajutorul lui Cosmin & altii,au fost testate cat de cat.

WWW SQL Designer

Scris de Andrei Ruse la data de October 30th, 2008 (adica 1 an in urma) 3 Comments »

Daca nu mai postez nimic despre viata mea zilele astea (ptr ca nu mai am viata), dau link-ul unui site, care mie mi s-a parut genial. Ce face? Te lasa sa construiesti grafic o baza de date sql, cu legaturi cu tot. Codul poate fi scos compatibil cu vreo 4 tipuri de sql, si importat.

O singura eroare am gasit,si anume ca poti defini un camp ca ENUM, insa mysql nu ti-l accepta gol (logic), si nu iti creaza tabela respectiva pana nu ii dai si optiunile ptr acel ENUM.

Link: http://ondras.zarovi.cz/sql/demo/

Si un demo, facut de mine in ~5 minute:

WWW SQL Designer   Image: catalog sql 300x172

Lansare Windows Server 2008

Scris de Andrei Ruse la data de March 21st, 2008 (adica 1 an in urma) No Comments »

Am dat pe BrainTV de un filmulet – singurul care m-a interesat in ultima vreme – in care unu` vorbeste de lansarea Microsoft Windows Server 2008 (ICHB il are pe 2 servere, si se comporta anormal, si anume nu functioneaza clusteringul dintre ele…nu se sincronizeaza Active Directory), Microsoft SQL Server 2008, si Visual Studio 2008.

Lansarea va fi la/a fost la  Romexpo – cica pe 20 martie, si m-as fi dus, dar am avut un morcov mare din cauza scolii. Cica “Analistii de IT il considera la fel de important ca aparitia primei versiuni a acestui produs”. O fi, dar computerul meu tot cu 2003 merge mai bine (am incercat 2008 in VmWare, si era stresat rau)

Citeste in continuare…

Despre Andrei Ruse

Andrei Ruse
Cine? Andrei Ruse
De cand pe lume? 11 iulie 1990
De cand pe blog? mai 2007
Mai multe, in sectiunea dedicata

Iti place ce citesti?

Aboneaza-te la acest blog prin RSS sau e-mail. Alti 163 vizitatori au facut-o deja!
E-mail
RSS

De curand:

Iti place ce citesti?

Photostream


Etichete

aberatii ana audio azi ascult baghy blacknight blog Blogosfera bucuresti cocalari constanta cosmin Fotoblog Funny google iarna ICHB Idiocracy kappacelu kappacelu soferelu laptop Leapsa Link-uri londra manele masini multimedia piku politica poze probleme review romania sarbatori server Site-uri software stiri tech trafic vacanta video windows Wordpress youtube

Blogroll:

A.Faith | Agentii de turism | Apartamente in Brasov | Baghy's blog | Berilac | Blogatu` | Blogu lu ndrey | Ciops | Claudia Balan | Cocalari.Com | Costinu's Blog | Cristina-Mihaela's Blog | Digital Sign Blog | Ditutu | drojdie`s blog | Edith21.info | Etherfast | Fotbal Online | Freaca Menta | I am ntz | Ice world | InCuvinte | Inka | Jocuri | Katmai | Kosmin | Momo | Motociclistul | Nemo | Paul | Personal Shopper | Piku`s blog | piticu.ro | Prelude in E Minor | pueril | Punct de roua | Pyuric's World | Razvan | Sejur | Situatii | Skreach | Stiri Ro | sunt.bloggerul.ro | Teo | Tutoriale Photoshop | Tzanc Bloc | Valydo | Wassup | Webdevelopment blog | YoungCreative - Webdesign | Za World Blog | ZerCustoms.ro |

Switch to our mobile site