1. 程式人生 > >後臺使用inner join連表比單表查詢效能更好

後臺使用inner join連表比單表查詢效能更好

使用者表user
uid type email password
11 0 [email protected] ***
22 1 [email protected] ***
33 0 [email protected] ***
44 2 [email protected] ***
使用者型別表user_type
uid type
22 1
44 2

 

單單使用user表可以查出type=1的使用者記錄集合

select * from user where type=1;

為了提高效能,我們會設計多一張user_type輔助查詢,因為絕大部分的使用者是type=0普通使用者,通過inner join可以以小表user_type去掃描關聯的記錄。假如user表有2億條記錄,user_type表有2條記錄,inner join之後,只需要掃描2條記錄,就可以把結果返回,所以效能要提升2億倍

select main.* from user as main inner join user_type as typeTable on main.uid = typeTable.uid where main.type=1