MySQL下LeftJoin的效能優化

2021-06-05 23:30:58 字數 391 閱讀 7731

今天遇到了乙個問題,有乙個select語句執行超慢,在加了index之後依然超慢。

資料庫是mysql,表a中有資料4000條,表b中有資料14000條

select語句為select count(*) from a left join b on a.id=b.id  (語句1)

執行時間為30秒

如果將select語句改為select count(*) from b left join a on a.id=b.id  (語句2)

執行時間為0.0x秒

原因讓人很無語,a表的id列的collate為utf8_bin,b表的id列的collate為空!

這也給我乙個教訓,以後再有使用mysql的專案的話,資料庫中所有列的collate最好都統一成utf8_bin。

mysql 如何優化left join

今天遇到乙個left join優化的問題,搞了一下午,中間查了不少資料,對mysql的查詢計畫還有查詢優化有了更進一步的了解,做乙個簡單的記錄 select c.from hotel info original c left join hotel info collection h on c.hot...

Mysql 解決left join 資料重複的問題

select p.g.rolename,pg.srctype from t gold pay add p left join grole g on p.roleid g.roleid left join gpay pg on pg.roleid p.roleid 這上面那邊語句,容易造成資料重複 s...

mysql基礎部分 Left Join 的簡單使用

有三個表,使用者表 user 許可權表 role 使用者許可權表 user role 查詢許可權 code欄位 為 admin的使用者的姓名 1.查詢條件是 許可權表 role 中的 code 為 admin 的那些資料 2.將1得到的許可權表 role 的id 與 使用者許可權表 user rol...