У меня есть такая модель
class MyJson(models.Model):
created_at = models.DateTimeField(null=True)
tweet_status = JSONField()
is_show = models.BooleanField()
def __str__(self):
return self.tweet_id
class Meta:
indexes = [
models.Index(fields=['is_show']),
models.Index(fields=['created_at',])
]
class MyJsonSerializer(serializers.ModelSerializer):
tweet_status = serializers.SerializerMethodField()
def get_tweet_status(self,obj):
return obj.tweet_status
class Meta:
model = MyTweet
fields = ('id','tweet_status','created_at')
class MyJsonFilter(filters.FilterSet):
is_show = filters.BooleanFilter(method='is_show_filter')
created_at = filters.DateTimeFilter(lookup_expr='gt')
def is_show_filter(self, queryset, name, value):
return MyJson.objects.filter(is_show=1)
, тогда я хочу получить 5000 строк из более чем 200000 строк where is_show = 1 order by created_at
.
Но это займет более 1 минуты.
Это слишком медленно, я хочу ускорить больше ....
Где шея bottle ??? или где я должен улучшить ??
Я установил is_show
и created_at
в качестве индекса.
Есть ли какие-либо настройки для этого случая ???