afick database
Author: Gerbier

# choix d'un type de base de données

## introduction

Afick s'appuie sur des bibliothèques perl pour construire la base de données contenant les informations sur les fichiers. Il se trouve que PERL offre un certain choix quant à cette base de données. Pour simplifier le codage, Afick a très longtemps utilisé le seul type de base de données disponible sur toutes les plateformes : SDBM (ces bibliothèques faisant partie du "noyau" perl).
Pour des problèmes de performances, ou de taille de base de données, il peut etre interessant d'utiliser une autre base de donnée, ce qui est possible depuis la version 2.9.0 d'Afick.

## les differents type de base

### SDBM

#### disponibilité

le type de base que l'on est sur de trouver avec chaque perl.

#### performance

#### taille de la base

### GDBM

#### disponibilité

#### performance

#### taille de la base

### NDBM

### ODBM

### DB

## mes benchs

Après avoir cherché un moment le bon code de test, j'ai fini par utiliser Afick lui-même.

### redhat 7.3/legacy

redhat | creation | mise a jour
--- | --- | ---
sdbm | 11'59 | 10'24
gdbm | 7'54 | 6'50

### debian sarge

debian | creation | mise a jour
--- | --- | ---
sdbm |  |
gdbm |  |

### mandrake 9.2

mandrake | creation | mise a jour
--- | --- | ---
sdbm | 41'75 | 51'76
gdbm | 43'61 | 53'27

### commentaires

Comme indiqué dans la doc perl (`perldoc -f AnyDBM_File`, ou `man AnyDBM_File`), les performances dependent des optimisations faites par ceux qui ont fabriqué le package perl.
Selon les plateformes, on voit des gains très net (x2) en passant de SDBM à GDBM (redhat, debian), ou rien (mandrake). Je vous encourage donc a faire vous-meme le test pour choisir la meilleure base pour votre machine : `time afick.pl -i --dbm=SDBM_File`
`time afick.pl -i --dbm=GDBM_File`

## changer de type de base

`afick -i --dbm`

retour à la page principale