je fait actuellement quelques tests
j'ai creer une table bidon
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 -- -- Structure de la table `game_biens` -- CREATE TABLE `game_biens` ( `id_biens` int(8) unsigned NOT NULL auto_increment, `id_users` int(8) unsigned NOT NULL default '0', `id_units` int(8) unsigned NOT NULL default '0', `id_source` int(8) unsigned NOT NULL default '0', `stock` tinyint(1) NOT NULL default '0', `resistance` varchar(16) NOT NULL default '', `experience` varchar(16) NOT NULL default '', PRIMARY KEY (`id_biens`,`id_users`,`id_units`,`id_source`) )Je me suis arreter un peu avant la fin du milliard ^^
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 <? #-----[ Paramètres de Configuration ]---------------------- $host = 'localhost'; $user = 'root'; $base = 'test'; $pass = ''; $db = mysql_connect ($host, $user, $pass); mysql_select_db ($base,$db); #-----[ Temps d'Execution ]-------------------------------- function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } $time_start = microtime_float(); #-----[ Construction du tableau de joueurs ]--------------- for( $i=0 ; $i<=200 ; $i++ ) { $array_joueurs[$i] = round(rand(1,2)).substr(round(rand(1000001,1999999)), 1); } for( $i=201 ; $i<=210 ; $i++ ) { $array_joueurs[$i] = '3'.substr(round(rand(1000001,1999999)), 1); } #-----[ Insertion en BDD ]-------------------------------- for( $i=0 ; $i<=1000000000 ; $i++ ) { $sql = 'INSERT INTO game_biens SET ' .'id_users = '.$array_joueurs[round(rand(0,210))].', ' .'id_units = '.round(rand(0,300)).', ' .'id_source = '.round(rand(0,300)).', ' .'stock = '.round(rand(1,3)).', ' .'resistance = '.round(rand(0,300)).', ' .'experience = '.round(rand(0,300)) ; echo $sql.'<br>'; mysql_query($sql); } #-----[ Temps d'Execution ]-------------------------------- $time_end = microtime_float(); $time = $time_end - $time_start; $time = substr($time, 0, strpos($time, ".")).substr(strstr($time, '.'), 0 , 4); return 'Page générée en '.$time.' secondes'; ?>
Je voulais tester l'acessibilité aux données sur une grosse table
Bon seulement problème ...Nb d'enregistrements : 919250
Nb de joueurs team1 : 422693
Nb de joueurs team2 : 453004
Nb de joueurs team3 : 43553
Page générée en 9.968 secondes
Si je met que ça il me met : Page générée en 4.573 secondes ; quand j'execute ma requete direct sous phpmyadmin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $sql = 'SELECT id_biens FROM game_biens'; $req = mysql_query($sql); echo '<br>Nb d\'enregistrements : '.mysql_num_rows($req);
d'ou viens une telle différence ? j'veux bien que l'affichage de ma page soit plus long mais la quand même sacré difference :heuuu:^^Affichage des enregistrements 0 - 29 (919250 total, traitement: 0.0004 sec.)
requête SQL:
SELECT id_biens
FROM game_biens
LIMIT 0 , 30
Partager