【问题标题】:How efficently change fetched data from django raw query如何有效地更改从 django 原始查询中获取的数据
【发布时间】:2020-01-07 07:23:07
【问题描述】:

对于我的项目,我需要运行原始查询来提高性能。问题在于,一方面我需要将获取的数据的值更改为其他(公历日期为 jalali),这会导致我的性能下降很多。

cursor.execute("select date,number from my_db)
while True:
    row = cursor.fetchone()
    if row is None:
       break
   data.append(row)

这部分 400 万条数据大约需要 1 分钟,但我需要像这样更改日期:

cursor.execute("select date,number from my_db)
while True:
    row = cursor.fetchone()
    if row is None:
       break

    row = list(row)
    row[0] = (jdatetime.datetime.fromgregorian(datetime=row[0]).strftime(                                                       '%y/%m/%d, %H:%m'))

   data.append(row)

这会导致我的代码在 7 分钟内运行。我想知道是否有办法有效地进行此更改

【问题讨论】:

    标签: python mysql django


    【解决方案1】:

    第一部分不应需要 1 分钟才能完成。而不是原始的 sql 和循环,做

    data = YourModel.objects.values_list('date', 'number') 
    

    对于第二部分,您可以制作自己的 SQL 函数。 https://raresql.com/tag/iranian-calendar-to-georgian-calendar-in-sql-server/

    【讨论】:

      猜你喜欢
      • 2017-10-24
      • 2020-08-02
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      • 2020-01-09
      • 2015-03-22
      • 2019-08-12
      • 2021-10-12
      相关资源
      最近更新 更多