lundi 20 janvier 2020

quizgame randomize getting duplicates in production

one way that'd probably work "well enough" is (assuming you can afford to do a count): pick a random indexed column to order by. Order the whole queryset by that. Pick a range between the top and the bottom of the resultset (eg: 1234:1254) and take 1 random result from there. At 50K rows it's ~probably~ a blip in terms of query time (though tbh so might rand() be, at that), however I am trying to translate it into my own codebase as far as I am creating the poc for production code, and I know order_by("?") will kill my db

@api_view(['GET', 'POST'])
def questions_view(request):
    if request.method == 'GET':
        questions = Question.objects.all().order_by('?').first()
        serializer = QuestionListPageSerializer(questions)
        return Response(serializer.data)



Aucun commentaire:

Enregistrer un commentaire