我有几个与数据库性能有关的问题。我的应用程序中有以下 Django 模型及其相应的管理类。数据库是 MySQL,它托管在 Amazon RDS 上。
- 通过 for 循环在 Notifications 表中添加大约45000 条记录需要20 多分钟。这个时间是慢还是正常?
- 这个表的 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 )
行政
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)