• # Il manque trop d'informations pour donner une réponse

    Posté par . En réponse au message temps d'acces fichier ou bdd. Évalué à 3.

    Hello,
    à mon avis c'est quasi impossible de répondre d'un point de vue théorique ... et c'est là qu'on entre très rapidement dans un métier : ARCHITECTE base de données ou ARCHITECTE infra.

    Pourquoi parler d'architecture ? hé bien imaginons que tu me confie la mission de rendre le plus rapide possible l'accès à tes données et que mon seul outil est un filesystem je vais donc découper le millions de sous répertoire dans une arborescence qui favorise la recherche SELON le critère de recherche que tu veux.

    Exemple: le stockage du cache de squid

    Et là tu peux voir que s’il y a 5 critères de recherches c'est la merde :) Où que le sous-entendu de "1 million de sous-répertoire" était "un seul niveau d'arborescence" ... moi j'ai compris qu'on avait 1 million de sous-répertoires sans "profondeur maximale".

    Mais si tu me dis qu'il y aurait plusieurs critères de recherches là c'est clair et net que soit je me joue la vie à faire des arborescences avec des symlinks et à maintenir à jour l'ensemble de l'arborescence (quand on a pas de base de données on fait avec les moyens du bord) ... soit très rapidement je vais créer des fichiers d'index (textes bruts) qui contiendront le nom du fichier et le champ de recherche comme ça pour trouver ton fichier il faudra faire "grep mot-clé index_par_titre" ou "grep mot-clé index_par_rédacteur" et ainsi de suite ... faire un fichier d'index sur un filesystem c'est vraiment utiliser des idées de la base de données sans en avoir les outils.

    Idem, quelle quantité de RAM disponible ? si possible de mettre les fichiers d'index en RAMFS ça deviens drôle.

    Ou quel moteur de base de données si tu veux faire de la bdd ?

    Alors voilà à mon avis il n'y a pas de réponse définitive, tout est à mettre entre les mains d'architectes qui sauront trouver la bonne solution adaptée au problème précis.

    Pas de bases de données c'est parfois bien, j'ai souvenir d'avoir éclaté des scores de recherches de fichiers mp3 il y a quasi 20 ans quand on jouait avec le SQL ...

    Un exemple, dernièrement j'ai voulu jouer avec des fichiers issus de l'OpenData d'une agence gouvernementale, un fichier CSV de ~5Go avec un peu plus de 20 millions d'entrées. Le 1er import dans MySQL (MariaDB) = 8h ... un peu d'optimisation plus tard j'en suis maintenant à moins de 5 minutes ... entre les deux le simple fait de passer d'un fichier innodb à myisam a fait exploser les scores ... ça tombe bien j'ai pas besoin de ce qu'innodb apporte (pour faire un énorme résumé: aucune contrainte relationnelles entre tables) ...

    Donc réponse de normand "ça dépend" :-)

    eric.linuxfr@sud-ouest.org