Asupra optimizării procesării cererilor MYSQL pentru creşterea calităţii

Documente similare
PHP (II)

Facultatea de Științe Politice, Administrative și ale Comunicării Str. Traian Moșoiu nr. 71 Cluj-Napoca, RO Tel.: Fax:

Inserarea culorilor in tabele

Microsoft Word - Curs 11 - PHP.doc

Utilizare Internet

Microsoft Word - Politică de cookie-uri OK_v1.docx

tehnologii web

Managementul Resurselor Umane

Microsoft Word - Ansamblul software CRONIS

Aggregating Data

Microsoft Word - Curs_07.doc

proiectarea bazelor de date

Settlement participant system

Paradigme de Programare

Caraivan George-Alexandru Grupa 431A Interfața driver-kernel la Linux Introducere Deși pentru unii dintre noi acest lucru poate fi o supriză, cei mai

Slide 1

Microsoft Word - CarteC.doc

e-learning Agronomie Platforma de e-learning Versiunea: Ghid de utilizare Beneficiar: UNIVERSITATEA DE STIINTE AGRONOMICE SI MEDICINA VETERINARA

..MINISTERUL EDUCAŢIEI NAȚIONALE ŞI CERCETARII STIINTIFICE UNIVERSITATEA DE VEST DIN TIMIȘOARA.I CENTRUL DE DEZVOLTARE ACADEMICĂ. FIȘA DISCIPLINEI 1.

Prezentarea calculatorului

1

Microsoft Word - Fisa disciplinei BD_I_IE doc

Web Social FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 2. Dezvoltarea blogurilor prin intermediul WordPress.com PREZE

Microsoft Word - barcan.doc

Proiectarea Sistemelor Software Complexe

METODE PRACTICE DE IMPLEMENTARE A LABORATOARELOR VIRTUALE ONLINE PENTRU DOMENIUL ELECTRONICII SAU AUTOMATICII METHODS FOR THE IMPLEMENTATION OF ONLINE

(Microsoft PowerPoint SIBIUEVIDENTA [Doar \356n citire])

Lucrarea 10

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

Ghid de utilizare Moodle Pentru cadre didactice

Microsoft Word - O problema cu bits.doc

Informație și comunicare

1

FD Informatica

Facultatea de Științe Politice, Administrative și ale Comunicării Str. Traian Moșoiu nr. 71 Cluj-Napoca, RO Tel.: Fax:

manual_ARACIS_evaluare_experti_v4

Slide 1

Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursu

Microsoft Word - MANUAL_APP_ROMPOS_V7.docx

Laborator 1 suport teoretic Mediul de dezvoltare Eclipse GLOSAR - Aplicaţie: program obţinut în urma aplicării operației BUILD asupra unui proiect (ve

Nr.înregistrare: 88 / Social Media in the Classroom Prof.Cucuianu Marița Colegiul Național,,Neagoe Basarab"Oltenița,jud.Călărași 2.Quizizz E

Laborator 3

Microsoft Word - Lansare proiect POSDRU (2)

Modulul 1 M1-2.3 Protocoale şi servicii în reţea În acest capitol ne propunem să abordăm următoarele: Protocoalele şi aplicaţiile folosite în reţelele

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 3. Achizitionarea domeniilor web si a

Lucrarea nr. 2 Aplicaţii de tip client Mihai IVANOVICI 6 martie 2006 Scopul acestei lucrări este de a vă familiariza cu modulul Python socket şi cu mo

EVALEDIT - EDITOR ON-LINE DE TESTE GRILA Cristea BOBOILĂ * EvalEdit reprezintă o aplicaţie tip Internet al cărei scop este evaluarea on-line şi editar

Biomedical Wi-Fi data transmissons

PLAN MANAGERIAL

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 4. Dezvoltarea site-urilor si blog-uri

Atributii:

Manual de utilizare a Sistemului Informațional al Institutului Național al Justiției (SI INJ) intranet.inj.md Ver.2 Manual de utilizare a Sistemului I

manual_ARACIS_evaluare_experti_v5

Concepte de bază ale Tehnologiei Informației

PowerPoint Presentation

PREZENTAREA BIBLIOTECII U


FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Alexandru Ioan Cuza din Iaşi 1.2 Facultatea Facultatea de

Raportarea serviciilor de dializă la nivel CNAS

Laborator 2 Incompatibilităţi/Diferenţe între C şi C++ Completări C++ Supraîncărcarea (redefinirea) numelui de funcţii În C nu este permisă existenţa

Introducere în limbajul JavaScript

Proceduri stocate Syntax: CREATE PROCEDURE <Name> type1,...] AS -- secventa de comenzi SQL GO O procedura stocata se ruleaza cu EXEC: EXEC <N

Microsoft Word - grile.doc

O SINGURĂ licență și ai acces de pe oricâte stații de lucru! Olteniei nr.4, Baia Mare Tel.: 0262 / , 0743 /

SEM 12 - Crearea conținutului Web (HTML, CSS, WordPress)

Entrepreneurship and Technological Management

Catalog

2 BAZE TEORETICE ALE REȚELELOR DE CALCULATOARE CAPITOLUL 2 BAZE TEORETICE ALE REŢELELOR DE CALCULATOARE 2.1. Necesitatea standardizării (referenţierii

Microsoft Word _POO_Lab_1_Modificari_v01.htm

Testare manuala: situatia in care o persoana initiaza fiecare test, interactioneaza cu el si interpreteaza, analizeaza si raporteaza rezultatele. Test

ADRIAN TRIF BAZE DE DATE APLICAŢII ACCESS UTPRESS Cluj-Napoca, 2019 ISBN

Advance CAD 2016 SP1 Acest document descrie îmbunătățirile pentru Advance CAD 2016 Service Pack 1. Notă: Advance CAD 2016 Service Pack 1 este compatib

PowerPoint Presentation

Microsoft Word - Fisa disciplinei_BD2_DM_ doc

AdVision este un software de narrowcasting, destinat tuturor celor care administrează conţinut pe o reţea de monitoare. Fie că este vo

Laborator02

INSTITUTUL DE DEZVOLTARE A SOCIETĂŢII INFORMAŢIONLE

Transmisia datelor multimedia in retele de calculatoare <Titlu Lucrare>

CURS

Ruby on Rails Pop Alexandru Pavel Razvan Calculatoare 4

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea de Vest din Timișoara 1.2 Facultatea Matematică și Informa

Anexa nr. 2 FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior UNIVERSITATEA DE VEST TIMISOARA 1.2 Facultatea FIZICA 1.3 De

Baze de date

PROGRAMA DE EXAMEN

Investeşte în oameni Proiect cofinanţat din Fondul Social European prin Programul Operaţional Sectorial pentru Dezvoltarea Resurselor Umane


Platforma 5. 1 Introducere in MSSQL Introducere Pe parcursul ultimilor ani, se poate observa o cuplare a limbajelor de programare majore cu tipuri de

PowerPoint-Präsentation

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 6. Vizualizarea statisticilor prin int

Microsoft PowerPoint - 11_USO_curs_08.ppt [Compatibility Mode]

Microsoft Word - 2. studii_de piata_ _servicii_promovare_informare.docx

programă şcolară pentru clasa a 11a, liceu

Concepte de bază ale Tehnologiei Informației

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai Cluj-Napoca superior 1.2 Facultatea Matematică şi Info

Microsoft Word - 04-Cotfas Petru A-Rezumat RO

Diapositive 1

Unitatea: Școala Gimnazială Disciplina: Informatică și TIC Programa școlară aprobată cu OMEN nr.3393 din Profesor: prof. Clasa: a V-a A, B

Информационная система персонализации, печати и учета документов об образовании

Transcriere:

ASUPRA OPTIMIZĂRII PROCESĂRII CERERILOR MYSQL PENTRU CREŞTEREA CALITĂŢII PLATFORMELOR E-LEARNING. Vasile MOLDOVAN * Florin POPENTIU-VLADICESCU ** The paper presents some aspects concerning the quality improvement of the script design, using MySQL for the development of the e-learning platforms. Also some methods and techniques are proposed for the optimisation of the execution time for query processing using these data bases. The performances of these methods and techniques are illustrated by experimental results. Key words: E-learning,Web Based Learning, query optimization, execution time, databases. 1. Introducere Dezvoltarea explozivă a internetului a permis extinderea acestuia si pentru domeniul învăţământului la distantă. Această nouă abordare a constituit începutul unei schimbări fundamentale a modului în care se învaţă, se predă sau se auto-învaţă, cu scopul formării continue a studenţilor, a căror vârstă nu mai constituie a barieră. Faţă de învăţământul tradiţional, care este organizat pe grupe de vârstă, cel on-line este axat pe subiecte. In noua viziune la acelaşi curs on-line, pot participa studenţi de vârste, pregătiri, si experienţe profesionale diferite, provenind din zone geografice distincte. În esenţă, învăţământul la distanta (E-learning-ul) oferă accesul comod şi eficient al studenţilor la informaţii şi cunoştinţe de ultimă ora, metode moderne şi eficiente de predare si învăţare. In această nouă abordare studenţii pot beneficia de o instruire şi o formare permanentă precum şi o evaluarea on-line a cunoştinţelor lor. În acest sens, E-learning-ul este o alternativă la educaţia permanentă în societatea informatizată de azi sau de mâine.[1] Pentru termenul de E-learning nu se poate afirma că există un consens clar privind înţelesul intrinsec, dar in general E-learning este sinonim cu: Online Learning, Distance Learning sau Web Based Learning Web-Based Training (WBT).[12] În cele ce urmează, se va face referire la E-learning în sensul de Web Based Learning, utilizând facilităţile oferite de câtre internet. Referindu-ne la aceste sisteme putem afirma cu certitudine ca regulile generale pentru o pagină Page 1 of 10

de web, sunt valabile atât în privinţa realizării cât şi a exploatării ulterioare. In continuare vom prezenta cele 2 aspecte menţionate anterior. 2. Limbajul server-side E-learning-ul fiind bazat pe web, pentru exemplificare am ales unul dintre posibilele limbaje, şi anume cel mai răspândit, PHP-ul deoarece sistemele dedicate acestor procese sunt dinamice. În istoria tehnologiilor utilizate la realizarea site-urilor web, limbajul PHP a apărut in 1994 din nevoia lui Rasmus Lerdof de a afla câte persoane îi vizualizează pagina de internet. El a denumit setul de scripturi create PHP, acronimul pentru Personal Home Page. Evoluţia limbajului a fost spectaculoasă în anii următori, dar adevăratul succes a început să se concretizeze când Zeev Suraski şi Andi Gutmans şi-au adus contribuţia la motorul PHP, motor care poartă de la versiunea 4 a PHP numele Zend, o combinaţie de litere din prenumele creatorilor săi: Zeev şi Andi. [4] Fiind open-source, PHP beneficiază de un suport important şi constant din partea comunităţii on-line, foarte numeroase, fapt care a dus la răspândirea rapidă a paginilor de internet care folosesc acest limbaj. Intre anii 2000 şi 2002 numărul lor a crescut de peste 130 de ori, in timp ce numărul site-urilor bazate pe alte tehnologii cum sunt ASP(Active Server Pages), Java Server Pages (JSP) sau Cold Fusion s-a mărit de maxim 16 ori.[12] Pe lângă multiplele avantaje pe care le are, cum ar fi funcţiile multimedia, manipularea conţinutului, utilizarea variabilelor HTTP[6], cea mai semnificativă rămâne totuşi uşurinţa cu care acesta lucrează cu bazele de date. Programatorul are la îndemână o serie de funcţii dedicate pentru utilizarea bazelor de date şi astfel din codurile PHP poate apela practic toate comenzile MySQL. 3. MySQL. Baze de date. MySQL este cea mai folosita soluţie pentru aplicaţii cu baze de date. Răspândirea pe scară largă se datorează în principiu, faptului că MySQL este open-source dar si contribuţiei, respectiv suportului companiei producătoare [7]. Am putea enumera o serie de firme mari care utilizează popularul MySQL printre care este suficient dacă re-amintim Google sau Yahoo. Se poate afirma că un procent semnificativ dintre aplicaţiile care folosesc această soluţie sunt bazate pe internet sau intranet, pagini de web, portaluri de web, aplicaţii client server. MySQL se poate utiliza şi la aplicaţii desktop, chiar mai mult decât atât, se poate folosi aproape cu toate limbajele de programare de nivel înalt, de la.net până la PHP. Page 2 of 10

Pe lângă versiunea open-source[9], dacă se intenţionează utilizarea platformei în scopuri comerciale, atunci se impune achiziţionarea unei versiuni cu licenţă. Una dintre cele mai răspândite soluţii, ce sta la dispoziţia utilizatorului bazelor de date este popularul PhpMyAdmin, care este realizat în întregime in PHP si are o interfaţă foarte prietenoasă, ca alternativă la linia de comandă pentru executarea comenzilor MySQL[2]. PhpMyAdmin este foarte des utilizat ca şi componentă integrantă în pachetele de administrare ale servere-lor de web (pachetele de găzduire), împreună cu aplicaţia Cpanel. În cazul articolului de faţă au fost utilizate în tandem atât PhpMyAdmin cat şi o aplicaţie care rulează sub Windows, Navicat. Acesta are deja o serie de facilităţi privind exportul şi importul de date în diferite formate şi poate fi chiar generator de query-uri[8]. 4. Despre platformele E-learning. În cazul învăţământului bazat pe internet, au apărut o serie de soluţii comerciale, dar şi gratuite sub incidenţa licenţei open-source, dezvoltate de diferite firme sau comunităţi, soluţii care se pot defini mai exact prin denumirea de Learning (Content) Management System - L(C)MS. Un sistem de management al conţinutului (SMC.) este procesul de aprovizionare sistematică şi structurată, de creare, prelucrare, administrare, prezentare, procesare, publicare şi reutilizare al conţinutului [5]. Avantajele unor astfel de sisteme sunt multiple, dar poate cel mai relevant este acest "anytime, anywhere", adică accesibilă oricând şi de oriunde, necesitând doar un acces la internet prin intermediul unui navigator(browser)[12] de web. Dintre facilităţile, cerinţele ridicate de un astfel de sistem, se pot menţiona: crearea de conţinut - permite generarea la orice moment a unor categorii noi de cursuri (materii), conţinuturi aferente, prin importul cât mai uşor al diferitelor formate electronice (MsWord, MsPowerPoint, Pdf,...)[12]; managementul conţinutului - aceste sisteme trebuie să asigure uneltele necesare organizării eficiente a conţinutului, trecerea la diferite versiuni, stocarea datelor şi arhivarea acestora; compatibilitatea - un alt criteriu, menit să asigure schimbul facil de informaţii între astfel de sisteme; flexibilitatea - modificări în definiţiile entităţilor şi a relaţiilor dintre acestea nu vor necesita modificări esenţiale la nivelul structurii bazei de date; scalabilitatea - nu vor exista probleme de performantă la mărirea volumului de date procesat; Page 3 of 10

abstractizarea - modelul trebuie să asigure gestiunea datelor pentru orice aplicaţie similară orientată spre publicarea informaţiei, structura tabelelor de baza trebuie sa fie similară. In utilizarea bazelor de date, servere de web, sisteme(site-uri) bazate pe web, se poate contura un scenariu limită Acest lucru se datorează accesării prea lente a bazelor de date, a timpilor de răspuns prea mari, a cerinţelor greşite (fără rezultate), a creşterii jurnalelor de erori si in consecinţă utilizatorii încep să fie refuzaţi de la conectare. Aceste neajunsuri se pot ameliora şi chiar elimina, dacă sistemul în cauză este proiectat corespunzător condiţiilor ulterioare de funcţionare. Creşterea calităţii acestor platforme are o serie de parametri de care aceasta caracteristică depinde în mod direct. Satisfacerea cerinţelor clienţilor în acest context, se reflecta prin disponibilitatea continuă a informaţiilor în vederea consultării acestora în cât mai bune condiţii. De multe ori însă acest deziderat este foarte greu de atins în mediul internet. Dacă ne gândim doar la răspândirea pe scară largă a mai multor tipuri (standarde) de motoare de cautare (IExplorer, Mozilla, Opera, etc.) şi aici putem sublinia lipsa unui standard general valabil pentru HTML şi CSS [12]. De asemenea putem remarca diferenţa dintre sistemele de operare, rezoluţii şi de ce nu, diferenţele de codepages, mai exact de caractere specifice unor regiuni sau ţări. De asemenea există in lumea virtuală formate diversificate de documente, nu întotdeauna cele standardizate, cum ar fi pdf-ul. Prin urmare, dacă nu luăm în considerare toţi aceşti factori, este foarte greu să se atingă un nivel de calitate cât mai ridicat. În cadrul lucrării de faţă, se prezintă unele aspecte şi concluzii legate de partea de software (ansamblul de scripturi şi baze de date). Acestea sunt rezultatul preocupării autorilor în direcţia mai sus mentionata, pentru asigurarea unei funcţionări optime, prin care să se atingă nivelul de calitate necesar acestor platforme. Sub aspectul optimizării acestor sisteme, în lucrarea de faţă factorul de interes este timpul de executare al scripturilor care se realizează pe partea de server, informaţia returnându-se utilizatorului prin intermediul unui navigator de internet. In continuare se prezintă câteva dintre rezultatele obţinute în acest sens. 5. Optimizarea procesării Pentru a face o analiză asupra timpilor de executare ai cerinţelor MySQL şi prin intermediul script-urilor PHP, s-a creat o baza de date simbolică, de 2000 de înregistrări a utilizatorilor, de tip e-learning prezentata in Tabelul 1. Page 4 of 10

Tabelul 1: Coloana Tip Lungime Special ID INT 11 Unique NUMELE VARCHAR 255 PRENUMELE VARCHAR 255 EMAIL VARCHAR 255 TELEFON VARCHAR 255 ANUL VARCHAR 255 SECTIA VARCHAR 255 USERNAME VARCHAR 255 PAROLA VARCHAR 255 Măsurarea timpilor de executare ale script-urilor rulate s-a făcut folosind funcţia microtime() din PHP, care returnează timpul UNIX curent. Inserând secvenţa de cod: $mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; $starttime = $mtime; la începutul fişierelor iar secvenţa $mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; $endtime = $mtime; $totaltime = ($endtime - $starttime); la sfârşitul acestora, avem posibilitatea să determinăm cu exactitate timpul scurs între cele două secvenţe. Valoarea timpului de executare al script-ului analizat, este regăsită în variabila $totaltime. În general, înainte de a scrie orice aplicaţie web, trebuie foarte bine cunoscute cerinţele şi condiţiile in care aceasta va fi folosită. În cele ce urmează prezentăm câteva dintre rezultatele obţinute, prin teste, folosind structura de baza de date ilustrata anterior. Se pot delimita două direcţii majore prin care se reduc timpii de executare, când se folosesc script-uri server-side, care lucrează cu baze de date şi deservesc utilizatorii prin intermediul unui browser web. 6. Optimizarea liniilor de cod Ne referim în cazul nostru la optimizarea rulării secvenţelor de program PHP. Aceste secvenţe sunt imbricate în codul HTML, sau se regăsesc individual, dar oricum rezultatul este tot un cod HTML. Page 5 of 10

Se poate afirma, ca este bine ca trecerea de la HTML la PHP în cadrul unui script să se facă de cât mai puţine ori, adică secvenţa de deschidere <? > (una dintre cele patru posibile) să se reducă la minim. Pentru a verifica practic acest lucru am măsurat timpii de executare pentru două variante diferite ale unui script PHP, care ia anumite date din baza de date e-learning din Tabelul 1 şi le afişează sub o formă convenabila(cod HTML) într-un browser. Cazul 1. - Neoptimizat În interiorul buclei WHILE care parcurge rezultatele primite din baza de date, la fiecare pas se trece din PHP in HTML de mai multe ori pentru afişarea codului HTML corespunzător rândului de tabel, astfel: while($row=mysql_fetch_array($result)) {?> <tr> <td><? echo $row['id'];?></td> <td><? echo $row['numele'];?></td> <td><? echo $row['prenumele'];?></td> <td><? echo $row['telefon'];?></td> </tr> <??> </table> Cazul 2. - Optimizat În interiorul buclei WHILE, codul HTML aferent rândului din tabel se pune într-un echo, astfel trecerea de la codul PHP la HTML nu se mai realizeaza. while($row=mysql_fetch_array($result)) { echo " <tr> <td>$row[id]</td> <td>$row[numele]</td> <td>$row[prenumele]</td> <td>$row[telefon]</td> </tr> "; Page 6 of 10

?> </table> Rezultatele obţinute pentru cele două variante se prezintă în tabelul de mai jos mai jos. Tabelul 2: Nr. Înregistrări Timp-caz1 [sec] Timp-caz2 [sec] 1 200 0,132285881042 0,215481119156 2 400 0,250323057175 0,233474969864 3 600 0,294636020660 0,261955022812 4 800 1,383291959760 1,307677030560 5 1000 2,022243022920 2,081826925280 6 1200 2,429026126860 2,186830997470 7 1400 2,884603977200 2,667994976040 8 1600 5,217308998110 2,755152940750 9 1800 5,420905876160 3,827739953990 10 2000 6,206202030180 5,991676092150 7. Optimizarea cererilor(query) MySql Prezentăm de asemenea rezultatele obţinute pentru cazul cererii trimise de script-ul PHP către MySQL, în vederea afişării datelor cu care a fost populată[11] Prezentam tabelul utilizatori sub forma de mai jos. Tabelul 3: Id Numele Prenumele Telefon 1 Se porneşte de la premiza că se doreşte afişarea tuturor utilizatorilor care satisfac o anumită condiţie. Greşeala majoră in asemenea cazuri, atunci când avem de a face cu un volum mare de date, este de a selecta toate înregistrările, urmând ca din tabloul în care acestea sunt plasate sa se afişeze numai acelea care satisfac o anumită condiţie. Soluţia optimă este oferită de interogarea optimă a bazei de date cu scopul selectării numai a acelor date care prezintă interes. În cazul de faţă, am modificat înregistrările câmpurilor anul din Tabelul 1, care reprezintă utilizatorii, la jumătatea numărului de înregistrări (1000) In acest mod valoarea conţinută este 2, deoarece se doreşte afişarea acelor utilizatori (studenţi) care sunt înscrişi in anul de studiu 2.( valoarea implicită este 1 ). Page 7 of 10

Cazul 1. - Neoptimizat Cererea MySQL va selecta toate înregistrările din Tabelul 1, dar se vor afişa doar acele rânduri(înregistrări) unde anul este egal cu 2. Cererea are forma: $query="select * FROM utilizatori"; Iar secvenţa de afişare WHILE: while($row=mysql_fetch_array($result)) { if ($row['anul'] == 2) { echo " <tr> <td>$row[id]</td> <td>$row[numele]</td> <td>$row[prenumele]</td> <td>$row[telefon]</td> </tr> "; Pagina cu rezultate a fost generată in 2.37645101547 secunde. Cazul 2. - Optimizat În acest caz cererea MySQL are forma: $query="select * FROM utilizatori WHERE anul=2 "; Iar secvenţa de afişare WHILE: while($row=mysql_fetch_array($result)) { echo " <tr> <td>$row[id]</td> <td>$row[numele]</td> <td>$row[prenumele]</td> <td>$row[telefon]</td> </tr> "; Page 8 of 10

Astfel, pentru optimizarea făcută, am obţinut un timp de generare al rezultatelor in 1.80704913139 secunde. Diferenţa faţă de cererea anterioară este de 0,569401884080. Se poate observa, cum prin analiza atentă a problemelor şi alegerea variantelor optime se pot obţine diferenţe semnificative. În cadrul lucrării de faţă s-a folosit ca platformă de testare un calculator personal IBM, având ca sistem de operare Windows 2000 Profesional + Service Pack 4, cu pachetele necesare pentru realizarea de server web: - Apache 2.0.48 (Win32) ca server de web - PHP Versiunea 4.3.10 - procesor hypertext - MySQL Server 4.1 pentru baza de date Asupra măsurătorilor efectuate cu diferite combinaţii şi sintaxe, atunci cand se ia în considerare si utilizarea script-urior PHP, se pot formula unele recomandări privind obţinerea unor timpi minimi de executare pe platformele de acest gen. (Anexa 1) Concluzii In cazul cererilor optimizate, am obţinut un timp de generare al rezultatelor in 1.80704913139 secunde, câştigul faţa de cererea anterioara fiind 0,569401884080 secunde. Este evident faptul că printr-o analiza atentă a problemelor şi alegerea variantelor optime se pot obţine avantaje semnificative. Bibliografie [1] M. Vlada, E-Learning şi Software educaţional, Conferinţa Naţionala de Învăţământ Virtual, 2003, pag. 1 2 http://fmi.unibuc.ro/cniv/, accesat la 10.01.2007 [2] Matthew Norman, Database Design Manual, PHP şi MySQL, Springer 2004, pag. 199-203 [3] Betsey Bruce, Building Online Learning Applications, Peachpit Press 2002, pag. 420-446 [4] Simon Stobart, Mike Vassileich, PHP and MySQL Manual, Springer 2004, pag. 29-35 [5] Farida Hasanali, Paige Leavitt, A Guide for Your Journey to Knowledge Management, APQC 2003, pag. 63-90 [6] Larry Edward, Php and MySQL for dinamic webpages, Peachpit Press 2003, pag. 107-112 [7] Hugh E. Williams, David Lane, Web Database Applications with PHP & MySQL, O'Reilly 2002, pag. 110-113 [8] Ben Forta. MySQL Crash Course, Computers 2005, pag. 121-131 [9] Andrew M. St. Lauren, Understanding Open Source and Free Software Licensing, O'Reilly 2004, pag. 1-11 [10] Larry Edward Ullman, Php and MySQL for dinamic webpages, Peachpit Press 2003, pag. 185-189 Page 9 of 10

[11] Julie C. Meloni, PHP Essentials, Second edition, Tomson Course Technology 2000, pag. 109-135 [12] E-Learning glossary - World's biggest e-learning glossary - http://www.elearningguru.com/gloss.htm, accesat la 11.01.2007 Anexa 1 1. Se vor selecta, în cadrul unei fraze SELECT, doar câmpurile de interes şi se va evita folosirea SELECT *, ori de cate ori este posibil; 2. Se vor plasa cele mai semnificative argumente cât mai la dreapta posibil deoarece MySQL interpretează interogările de la dreapta la stânga; 3. Se va evite folosirea unor valori care se schimbă foarte rar ca înregistrări în baza de date. Este preferabil ca acestea să fie incluse în fişiere de unde vor fi încărcate la nevoie; 4. Se recomanda folosirea index-urilor,[10] unde este cazul pentru a reduce timpii de acces, mai ales la utilizarea frecventă a SELECT-urilor; 5. Se recomanda folosirea parametrului LIMIT 1; in cazul când se doreşte selectarea unei singure înregistrări, astfel MySQL se opreşte după ce a fost găsită înregistrarea [9]; 6. Selectarea din baza de date de face utilizand: $line=mysql_fetch_array($result), deoarece rezultatele se pot accesa în două moduri: a) $line[0] sau b) $line['numecoloana']; in cazul in care se optează pentru $line['columnname'] este de preferat să se folosească $line = mysql_fetch_assoc($result), deoarece nu va mai exista nici un tablou $line[int_index]; 7. Se va evita interogarea bazei de date de mai multe ori consecutiv pentru aceleaşi date, este recomandabil ca rezultatele sa se salveze în variabile; 8. Se recomandă pe cât posibil, folosirea valorii implicite NOT NULL, deoarece crescând timpul de executare, se economiseste câte un bit; 9. Se vor folosi tipurile de date strict necesare pentru a acoperi plaja acestora, nu foarte mari, de exemplu INT poate acoperi până la 4294967295 fără semn, lucru care de obicei nu este necesar (MEDIUMINT sau SMALLINT este preferabil); 10. Se va evita folosirea a prea multe tag-uri <?...?> fapt care încetineste viteza de rulare; 11. Şirurile de caractere se vor pune între faţă de deoarece PHP-ul nu trebuie să caute după variabile; 12. Funcţia echo este mai rapida decât print; 13. Se vor iniţializa valorile maxime pentru bucle, înainte de a intra în buclă şi în interiorul secvenţei: $valoare_max = 100/10; for($i=0; $i<$ valoare_max; $i++){ // corp ciclu este mai rapid decât, for($i=0; $i<100/10; $i++){ // corp ciclu. * Asist.drd.ing., Universitatea din Oradea ** Prof.univ.dr., Universitatea din Oradea Page 10 of 10