par
orgerix » 10 juil. 2008, 12:12
Les tableaux dont tu parles sont des variables php ou bien alors des tables SQL ?
Dans le premier cas, l'indexation consiste à utiliser des clef associatives. Par exemple, ce tableau
array(
'pomme',
'poire',
'banane'
);
Pour savoir si banane est dans le tableau, tu es obligé de le parcourir entièrement (soit avec foreach, soit avec une fonction de manipulation de tableau). Si le tableau est relativmeent gros, ca peut prendre du temps.
En revenche, si tu utilise des clefs associatives, comme ca :
array(
'pomme'=>TRUE,
'poire'=>TRUE,
'banane'=>TRUE
);
Il suffit juste de tester l'existance de la variable $tableau['banane'] pour voir si elle existe. Bien sur, la création de l'index prend du temps et de la mémoire(?). C'est une histoire de compromis
Dans le deuxième cas, la création d'index établit un sommaire des enregistrement, permettant d'accélérer les recherches. C'est comme un livre. Sans sommaire, tu dois lire les pages une à une tandis qu'avec un sommaire, tu cible rapidmeent ce dont tu as besoin. Cependant, il faut établir son index en regardant bien les requètes SQL. Il ne dois être ni trop vaste, dans ce cas il ne sert à rien, ni trop précis car sinon il ne sera pas utliser par le moteur SQL.
Les tableaux dont tu parles sont des variables php ou bien alors des tables SQL ?
Dans le premier cas, l'indexation consiste à utiliser des clef associatives. Par exemple, ce tableau
[php]array(
'pomme',
'poire',
'banane'
);[/php]
Pour savoir si banane est dans le tableau, tu es obligé de le parcourir entièrement (soit avec foreach, soit avec une fonction de manipulation de tableau). Si le tableau est relativmeent gros, ca peut prendre du temps.
En revenche, si tu utilise des clefs associatives, comme ca :
[php]array(
'pomme'=>TRUE,
'poire'=>TRUE,
'banane'=>TRUE
);[/php]
Il suffit juste de tester l'existance de la variable $tableau['banane'] pour voir si elle existe. Bien sur, la création de l'index prend du temps et de la mémoire(?). C'est une histoire de compromis
Dans le deuxième cas, la création d'index établit un sommaire des enregistrement, permettant d'accélérer les recherches. C'est comme un livre. Sans sommaire, tu dois lire les pages une à une tandis qu'avec un sommaire, tu cible rapidmeent ce dont tu as besoin. Cependant, il faut établir son index en regardant bien les requètes SQL. Il ne dois être ni trop vaste, dans ce cas il ne sert à rien, ni trop précis car sinon il ne sera pas utliser par le moteur SQL.