我有幾個與數據庫性能有關的問題。我的應用程序中有以下Django模型及其相應的管理類。數據庫是MySQL,它位於Amazon RDS。Django數據庫優化?這是緩慢還是正常?
- 花了超過20分鐘添加在通知表周圍45000記錄,通過一個for循環。這次是緩慢還是正常?
- 此表的django管理界面太慢。在沒有dB負載的情況下加載大約需要30秒。數據庫在執行任何作業時通常需要2分多鐘才能加載。該表通常每週或每兩週增加一百萬條記錄。有沒有一種方法來提高數據庫和/或系統的性能,或者這種當前加載時間是否正常?
模型
class Notification(models.Model):
id = models.AutoField(primary_key=True)
token = models.ForeignKey(Token, blank=False, null=False)
alert = models.ForeignKey(Alert, blank=False, null=False)
created_at = models.DateTimeField(auto_now=True)
is_sent = models.BooleanField(default=False)
is_processed = models.BooleanField(default=False)
error_sending = models.BooleanField(default=False)
# ...
def __unicode__(self):
return u'%s' % (self.alert)
ADMIN
class AppNotification(admin.ModelAdmin):
fields = ['token','alert','is_sent','is_processed','error_sending']
#
list_display = ('token','alert','created_at','is_sent','is_processed','error_sending')
#
search_fields = ('app__app_name','token__token')
#
list_select_related = True
#
list_per_page = 25
admin.site.register(Notification,AppNotification)