後臺使用inner join連表比單表查詢效能更好
阿新 • • 發佈:2019-01-08
uid | type | password | |
11 | 0 | [email protected] | *** |
22 | 1 | [email protected] | *** |
33 | 0 | [email protected] | *** |
44 | 2 | [email protected] | *** |
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