mysql多表關聯,未走索引

2022-09-07 05:21:09 字數 1759 閱讀 3733

接手前人**,今天架構發了條sql給我,有個子查詢走了全表,讓我處理一下,如圖

我心想:這麼簡單的sql,給 member_complaints_img 表加個索引不就輕輕鬆鬆解決?然後我發現:

我就納悶了,既然有索引,為什麼沒走呢?

member_complaints_img 表和 member_complaints_feedback 表的索引一樣呀,為什麼 member_complaints_feedback 錶走了索引呢?然後我把這兩張表的結構匯出:

仔細一看,member_complaints_id 列字元編碼不同,看一下資料庫的編碼:

建 member_complaints_img 表的前輩真是人才!甜蜜的!兩張表的字元編碼不同!你猜我排查了多久才想到字元編碼!

修改字元編碼後:

alter table member_complaints_img modify member_complaints_id varchar(36) character set utf8mb4 collate utf8mb4_general_ci not null comment '使用者投訴表id';

解決!

mysql不走索引總結

在mysql查詢語句中,總會發現明明已經建立了查詢字段索引,可是卻沒有用到,這是因為在mysql中有些查詢語句是用不到索引的,總結如下,以供大家分享。1.like語句 2.列型別為字串型別,查詢時沒有用單引號引起來 3.在where查詢語句中使用表示式 4.在where查詢語句中對字段進行null值...

mysql 多表關聯刪除

兩張表關聯刪除 delete a,b from table1 a inner join table2 b on a.id b.aid where a.id 1 或者也可以 delete a,b from table1 a,table2 b where a.id b.aid and a.id 1 三張...

mysql 多表關聯刪除

sql檔案 set foreign key checks 0 table structure for stu tea drop table ifexists stu tea create table stu tea stu id int 11 not null,tea id int 11 not n...