Tout d'abord, merci à Shozab Hasan et user359650 pour ces tests. Je me demandais quel choix était le meilleur et maintenant je le sais :
Pour encoder un simple tableau, JSON qui est OK à la fois avec PHP et javascript, peut-être d'autres langages.
Pour encoder un objet PHP, serialize est un meilleur choix en raison de la spécificité des objets PHP qui ne sont instanciables qu'avec PHP.
Pour stocker les données, il faut soit stocker les données encodées dans un fichier, soit utiliser MySQL avec le format standard. Il serait beaucoup plus facile de récupérer vos données. MySQL dispose d'excellentes fonctions pour récupérer les données de la manière dont vous le souhaitez, sans avoir recours à PHP.
Je n'ai jamais fait de test mais je pense que le stockage de fichiers est la meilleure façon de stocker vos données si le tri des fichiers du système est suffisant pour récupérer vos fichiers dans l'ordre alphabétique/numéral. MySQL est trop gourmand pour ce genre de traitement et utilise aussi le système de fichiers...