• [^] # Re: fs VS db

    Posté par . En réponse au journal Une base de données pour /home ?. Évalué à 3.

    pour cracher de l'info brute, je pense que le bon vieux filesystem sera toujours le plus performant.

    Ce n'est pas aussi évident que tu sembles le croire. Par exemple une base de données peut très bien (et d'ailleurs le fait dans la plupart des SGBDR) maintenir des statistiques d'accès sur les objets. Ce qui permet une gestion plus intelligente du chache, ou bien de la stratégie d'accès.

    Par exemple, si je (moi le SGBD) sais que le document X dont on me demande les 512 premiers octets a été lu entièrement et séquentiellement dans 90% des cas, je vais faire du read-ahead pour anticiper les demandes suivantes. De même, comme je sais qu'il a été lu séquentiellement dans 90% des cas, et qu'il n'est lu qu'une fois de temps en temps, je ne vais pas encombrer le cache avec.

    A contrario, si je sais que le fichier Y, les blocs en sont généralement lus de manière aléatoire, je ne vais pas faire du read-ahead. Par contre, si je sais que dans 90% des cas le bloc qu'on m'a fait lire, on me le redemande peu de temps après, je vais le mettre dans le cache avec une forte durée de vie...

    Un SGBDR est aussi très avantageux pour tout ce qui est références croisées. Par exemple, sur un FS, si tu veux avoir la liste des liens symboliques qui pointent sur un fichier donné, c'est une coûteuse recherche exhaustive. Alors qu'avec un SGBDR, c'est tout simplement une recherche de clef étrangère...