Je fais un serveur Ruby avec un cache d'informations sur les clients en ligne. Cette information devrait être préservée quand j'éteins le serveur. Je peux le stocker dans un tableau simple et le sauvegarder avec Marshal ou je peux utiliser une base de données SQL (MySQL, probablement). Quel est le meilleur à utiliser? Je pense que la méthode Array est facile, mais le SQL est plus rapide que? Merci!Ruby: Pour créer un cache de chaîne, ce qui est plus rapide: Array ou SQL?
Répondre
En fait, je m'attendrais à stocker le tableau sérialisé de manière significative, car aucune indexation ou allocation de ligne supplémentaire ne doit avoir lieu. Je pense que tout dépend si vous voulez être en mesure d'effectuer des requêtes sur l'information. Sinon, vous n'avez pas vraiment besoin d'une base de données, vous avez juste besoin de persistance. Vous pourriez aussi bien écrire le cache dans un fichier.
Cela dépend des exigences d'évolutivité. Si vous prévoyez des milliers d'enregistrements, vous devez utiliser SQL ou une autre base de données, bien que cela impose une surcharge de développement. Si vous traitez avec un petit nombre, cependant, vous pourriez vous contenter de sérialiser les objets et de les enregistrer sur le disque.
Bienvenue à SO en passant. –
La mémoire est toujours facile et rapide, mais l'évolutivité doit être prise en compte si vous pensez que votre serveur deviendra populaire. Garder beaucoup de données dans la RAM peut être très pénible lorsque vous devez attendre que le serveur le charge en mémoire après un crash. –