国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django查詢數據庫的性能優化示例代碼

2020-02-16 10:17:57
字體:
來源:轉載
供稿:網友

前言

Django數據層提供各種途徑優化數據的訪問,一個項目大量優化工作一般是放在后期來做,早期的優化是“萬惡之源”,這是前人總結的經驗,不無道理。如果事先理解Django的優化技巧,開發過程中稍稍留意,后期會省不少的工作量。

現在有一張記錄用戶信息的UserInfo數據表,表中記錄了10個用戶的姓名,呢稱,年齡,工作等信息.

models文件

 from django.db import models  class Job(models.Model):  title=models.CharField(max_length=32)  class UserInfo(models.Model):  username=models.CharField(max_length=32)  nickname=models.CharField(max_length=32)  job=models.ForeignKey(to="Job",to_field="id",null=True)

數據表中記錄:

另一張數據表記錄用戶工作的Job表,關聯用戶的工作字段.

要查出每個用戶的用戶名,呢稱和工作等信息

 def index(request):  user_list=models.UserInfo.objects.all()   print(user_list.query)  # 打印查詢時使用的語句  print(type(user_list))  # 打印查詢結果的數據類型   for user in user_list:    print("%s-->%s-->%s" %(user.username,user.nickname,user.job.title))   return render(request,'index.html')

打印信息:

SELECT "app01_userinfo"."id", "app01_userinfo"."username", "app01_userinfo"."nickname", "app01_userinfo"."job_id" FROM "app01_userinfo"<class 'django.db.models.query.QuerySet'>user1-->user1-->pythonuser2-->user2-->linuxuser3-->user3-->golanguser4-->user4-->pythonuser5-->user5-->linuxuser6-->user6-->golanguser7-->user7-->pythonuser8-->user8-->linuxuser9-->user9-->golanguser10-->user10-->linux

在服務端進行這些操作,這些查詢語句的性能是很低的,遍歷取出這10個用戶的姓名,呢稱,工作等信息要在兩張數據庫中執行11次查詢操作.

首先只從UserInfo表中查出所有的用戶記錄,需要執行一次查詢操作.

查詢Job數據表,每循環一次用戶信息的列表,都需要從Job表中查詢一次用戶的工作信息.

數據表中總共記錄了10條用戶記錄,所以還需要循環10次才能從Job表中查詢完成所有用戶的工作信息.所以一共需要執行11次數據庫查詢操作.

那有沒有什么好的方法能夠提高數據庫查詢的效率呢???

 def index(request):  user_list=models.UserInfo.objects.values("username","nickname","job")   print(user_list.query)  # 打印查詢時使用的語句  print(type(user_list))  # 打印查詢結果的數據類型  print("user_list:",user_list)   for user in user_list:    print(user["username"], user["nickname"], user["job"])   return render(request,'index.html')            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海丰县| 县级市| 上杭县| 高邑县| 周宁县| 舟曲县| 平果县| 交城县| 玛多县| 大洼县| 兴山县| 阳江市| 临沂市| 荆门市| 凤阳县| 宁波市| 井研县| 平武县| 炎陵县| 泗洪县| 汉阴县| 嘉禾县| 塔河县| 凤山县| 霍林郭勒市| 平果县| 唐山市| 平度市| 曲水县| 健康| 安义县| 雅安市| 剑川县| 当雄县| 邛崃市| 穆棱市| 武隆县| 江川县| 德清县| 枝江市| 会昌县|