zoukankan      html  css  js  c++  java
  • Django数据库 相关之select_related/prefetch_related

    	- 性能相关
    		user_list = models.UserInfo.objects.all()
    			for row in user_list:
    				# 只去取当前表数据
    	
    		select_related,主动连表查询【FK】
    			
    			user_list = models.UserInfo.objects.all().select_related('FK字段')
    			for row in user_list:
    				# 只去取当前表数据和FK表关联字段
    		
    		
    			user_list = models.UserInfo.objects.values(...)
    			for row in user_list:
    				# 只去取当前表数据和FK表关联字段
    		
    			==》 连表降低性能
    	
    		prefetch_related
    			user_list = models.UserInfo.objects.all().prefetch_related('FK字段')
    	
    			# [obj,obj,obj]
    			# 1.查询用户表models.UserInfo.objects.all() 1000 select * from UserInfo ;
    			# 2.把用户表中所有的ut_id拿到, 用户类型ID [1,2,3]  select * from UserType where id in [1,2,3]
    			# 3.把用户表中所有的xx_id拿到, 用户类型ID [21,21,31]   select * from xx where id in [21,21,31]
    
    			user_list = models.UserInfo.objects.all().prefetch_related('ut','xx')
    			for row in user_list:
    				print(row.name, row.pwd, row.ut.caption)
    		补充:
    			# [obj,obj,obj]
    			# user_list = models.UserInfo.objects.all().only('name')   # 只取某个字段 select name from userinfo 
    			# user_list = models.UserInfo.objects.all().defer('name')  # 排除当前字段	
    			# for row in user_list:
    			#     print(row.pwd)
    	
    

      

  • 相关阅读:
    自定义组件要加@click方法
    绑定样式
    647. Palindromic Substrings
    215. Kth Largest Element in an Array
    448. Find All Numbers Disappeared in an Array
    287. Find the Duplicate Number
    283. Move Zeroes
    234. Palindrome Linked List
    202. Happy Number
    217. Contains Duplicate
  • 原文地址:https://www.cnblogs.com/linzetong/p/8694607.html
Copyright © 2011-2022 走看看