2010-06-28 7 views
2

Mon serveur devint horriblement lent pour une raison quelconque. (Python, Windows 7, GAE 1.3.3) Je ne suis pas sûr si je fais quelque chose de mal, ou si ce n'est pas juste pour gérer la charge que je mets dessus. J'ai 1000 modèles d'un certain type dans le magasin de données. J'essaye de les supprimer avec cette méthode:Google App Engine: Devserver est horriblement lent

def _deleteType(type): 
    results = type.all().fetch(1000) 
    while results: 
     db.delete(results) 
     results = type.all().fetch(1000) 

Il a pris 20+ minutes. J'ai redémarré le devserver, et la console SDK a encore dit que j'ai 1000 de ces modèles dans la base de données. Que se passe-t-il?

Existe-t-il une meilleure façon de nettoyer mon application de toutes les données?

+0

Oww ... C'est horriblement lent. – asdacap

Répondre

4

Obtenir (et passer à db.delete) juste les clés plutôt que l'ensemble des objets devrait être un peu plus rapide. Cependant, de loin le moyen le plus rapide pour effacer la banque de données au démarrage sur le SDK est de démarrer votre application avec:

+0

En outre, la requête keys_only devrait accélérer un peu le processus. – hwiechers

+2

@hwiechers, oui, comme je l'ai dit au tout début de ma réponse concise, et je cite: "Obtenir (et passer à db.delete) juste les clés plutôt que l'ensemble des objets devrait être un peu plus rapide". N'est-ce pas exactement ce que vous dites aussi? –