Vra

Ek het'n gewoonte van die behoud van my veranderlike gebruik tot'n minimum.So ek wonder of daar enige voordeel wat verkry kan word deur die volgende:

$query = $mysqli->query('SELECT * FROM `people` ORDER BY `name` ASC LIMIT 0,30');

// Example 1
$query = $query->fetch_assoc();

// Example 2
$query_r = $query->fetch_assoc();
$query->free();

Nou as ek reg Voorbeeld 1 moet meer doeltreffend wees as $query is unset wanneer ek toewys dit wat moet vry van enige geheue wat verband hou met dit.Daar is egter'n metode (MySQLi_Result::free()) wat bevry wat verband hou geheue - is dit dieselfde ding?

As ek nie noem ::free() om vry van enige geheue wat verband hou met die resultaat, maar unset dit is deur gehou indiensneming die veranderlike is ek die doen van die dieselfde ding?Ek weet nie hoe om aan te meld hierdie soort van ding - nie almal het'n paar idees?

Was dit nuttig?

Oplossing

Die handleiding blyk voor te stel dat jy nog moet wees gebruik van free() om die geheue vry te stel. Ek glo die rede is dat free() is bevry die geheue in MySQL , nie in PHP. Sedert PHP kan nie vullis-in te samel vir MySQL, moet jy free() noem.

Ander wenke

Voorbeeld 1 dissosieer die $navraag veranderlike van die MySQL gevolg.Die MySQL hiervan bestaan nog steeds in die geheue, en sal voortgaan om te bestaan en mors geheue tot vullisverwydering plaasvind.

Voorbeeld 2 bevry die MySQL gevolg onmiddellik, die vrystelling van die gebruik van hulpbronne.

Egter, sedert PHP bladsye is oor die algemeen kort-geleef het met'n klein resultaat-stelle, die geheue gestoor is triviale.Jy sal nie kennisgewing van'n verlangsaming, tensy jy laat 'n ton van die resultate in die geheue oor'n lang tydperk van die tyd op die bladsye wat hardloop vir'n lang tyd.

Brian, PHP kan vullis versamel die MySQL hiervan, dit is net nie gebeur nie onmiddellik.Die gevolg lewens in PHP se geheue swembad, nie in die MySQL bediener is.

(die ligging van die geheue wanneer die gebruik van unbuffered navrae is effens anders, maar hulle is so selde gebruik in PHP as om nie te wees die moeite werd om te noem)

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top