Het verbeteren van uw MySQL query- maal in je PHP-script verhoogt uw surfsnelheid en voorkomt script time-outs te voorkomen . PHP is een scripttaal met functies waarmee u dynamische webpagina's te creëren . MySQL is een relationele database management systeem dat meerdere gebruikers toegang biedt tot databases op een server . Onderzoek naar de oorzaak van de trage queries met de " EXPLAIN " statement , waardoor de trage query- log en timing van uw vragen weten de functie " microtime " . Met behulp van de PDO - MYSQL uitbreiding en upgraden van uw PHP en MySQL versies kunnen ook helpen bij het versnellen van de queries . Instructies 1 Update je PHP en MySQL om de nieuwste versies van hun websites . Oude versies soms met elkaar in strijd , terwijl nieuwere versies beschikken over bug fixes en hebben meer kans met elkaar verenigbaar te zijn . Kopen van 2 Open je " my.cnf " bestand van MySQL in een teksteditor zoals Windows notitieblok . Zoek en stel de optie " log_slow_queries " op "ON " in plaats van " OFF " . Stel de " long_query_time " naar een laag getal zoals " 1 " en let op de ' log - slow - query's "directory . Herlaad je MySQL service. De " mysql - slow.log " wordt nu weergegeven welke queries lang duren om uit te voeren . Dit zal u helpen te bepalen hoe vaak uw query wordt langzaam uitvoeren . Plaats 3 de " EXPLAIN " statement in uw zoekopdracht voor een " SELECT " statement om informatie op te halen uit de optimizer over hoe uw zoekopdracht wordt uitgevoerd. De resulterende output kan de oorzaak van uw trage vraag te onthullen , zoals een ontbrekende index Time 4 uw PHP vraag met de functie " microtime " door toevoeging van de volgende code waar uw vraag ligt : . < br > $ time_beg = microtime ( true ) ; //plaats uw vraag hier $ time_end = microtime ( true ) ; $ time_res = $ time_end - $ time_start ; echo " de query duurde $ time_res seconden " ; Dit helpt bevestigen dat de query is het langzame deel en niet een ander deel van je code . Voer de code meerdere malen tot je een consistente tijd . Vergelijk deze tijdswaarde wanneer je eventuele toekomstige timing wijzigingen 5 Controleer voor eventuele fouten met de functie " mysql_error " door toevoeging van de volgende code waar uw vraag ligt : . $ result = mysql_query ( $ query ) ; als { $ msg = ' Query error : ' mysql_error ( ) ( $ resultaat! ) . . " \\ n " ; sterven ( $ msg ) op } 6 Gebruik de PHP PDO_MYSQL uitbreiding van uw database in plaats van de standaard " mysql_query " of bevragen " mysqli " functies . De PDO_MYSQL extensie maakt gebruik van inheemse voorbereide verklaring ondersteuning MySQL 's , die kunnen helpen de snelheid van uw vragen . De volgende code is een voorbeeld van hoe je een MySQL query naar de PDO_MYSQL extensie : $ db_info = ' mysql : host = localhost ; port = 3306 ; dbname = mijndb ' ; $ user = ' gebruikersnaam ' ; $ pas = ' wachtwoord' ; try { $ db_handle = new PDO ( $ db_info , $ gebruiker , $ pas ) ; < br } vangst > ( PDOException $ uitzondering) { printf ( " Fout : % s " , $ uitzondering - > getMessage ( ) ) ; } $ db_handle - > setAttribute ( PDO :: ATTR_ERRMODE , BOB :: ERRMODE_EXCEPTION ) ; $ db_handle - > setAttribute ( PDO :: ATTR_AUTOCOMMIT , false) ; $ sql = "SELECT * FROM mytable " ; $ result_set = $ db_handle - > query ( $ sql ) ; $ result_set - > setFetchMode ( PDO :: FETCH_ASSOC ) , while ( $ row = $ result_set - > fetch ( ) ) op { $ data = $ rij [ " MijnKolom " ] ; } $ result_set - > closeCursor ( ) ;
|