|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() Inscription : juin 2004 Messages : 495 ![]() |
Bonjour,
Je viens de coder ma première requête PHP/MySQL dans Wamp. J'utilise d'abord: $result = mysql_query( $query, $database ) Ensuite $row = mysql_fetch_row( $result ); Il semble que le select extrait les données dans le tableau $row. Mais quelle est la taille max de ce tableau? Si j'ai 100 000 lignes dans une table, MySQL ne va pas tout extraire en mémoire?? J'ai regardé dans la doc du site php mais j'ai rien trouvé. Bonne journée à tous les phpiens! |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
$result est une resource mysql, donc il n'a pas la taille d'un tableau. Ca correspond a des données qui sont dans la RAM du serveur et tu y accede avec mysql_fetch_row... donc oui, il met tout en memoire... a toi de faire des LIMIT debut, fin si tu veux qu'une portion du resultat, ou de filtrer les champs, etc...
si tu veux le nombre de lignes retournées, il faut faire : mysql_num_rows($result) |
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() |
Non il ne met pas tout en mémoire, mysql_fetch_array() lit les lignes de te requète une par une en déplacant une pointeur dans la mémoire alouée au résultat de la requète, mais ce n'est pas la même mémoire utilisée par PHP.
Tant que tu lis ton tableau ligne par ligne ça va.
__________________
Testez le forum Fire Soft Board, un forum libre, gratuit et français. Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP. |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
ca ne fait pas partie des 8Mo alloué a PHP alors ? c'est une memoire attribuée coté mysql ? quelle a sa limite en général ? c'est bien une memoire par utilisateur j'espere, et pas une memoire partagée ;o)
ca m'interesserait aussi de savoir |
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() |
Je n'en suis pas sur à 100% mais normalement la mémoire alouée par MySQL est indépendante de celle allouée pour PHP
__________________
Testez le forum Fire Soft Board, un forum libre, gratuit et français. Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP. |
|
|
00
|
|
|
#6 |
|
Membre actif
![]() Inscription : juin 2004 Messages : 495 ![]() |
Je vais tenter une manip en écrivant une procédure mysql_php.
Je vais insérer 1000 lignes dans une table test, puis faire un select. Et ainsi de suite. Je verrai bien à partir de quand ça bloque, si ça bloque. Mais pour ça il me faut MySQL 5, je crois, car j'ai wamp5 qui installe la 4.13a et je ne suis pas sûr, mais dans la 4 on n'a pas les procédures?? Dur dur d'être un newbie :o |
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() |
MySQL5 est payant
__________________
Testez le forum Fire Soft Board, un forum libre, gratuit et français. Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP. |
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
si MySQL retourne un résultat qui fait 8Mo, c'est PHP qui stocke ce résultat et si tu a une limite de mémoire avec PHP ça possera un problème
__________________
Modérateur PHP |
|
|
00
|
|
|
#9 |
|
Membre actif
![]() Inscription : juin 2004 Messages : 495 ![]() |
Ok merci pour l'info. Il faudra que je voie si on peut flusher la mémoire PHP des enregistrements déjà traités. Mais mon bouquin PHP n'arrive que dans 2 semaines, d'ici là je vais bosser sur les pages dynamiques et tester OLAP.
Allélébleux!! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com