mysql 表關聯之後索引失效的原因排查

2021-10-06 15:13:06 字數 420 閱讀 1748

1、兩表關聯使用的條件欄位中字段的長度是否是一致的

2、兩表關聯使用的條件欄位中字段的編碼是否是一致的

3,根本本就沒用到關聯表中的字段去查詢

今天我發現的問題就是第三個,

客戶資訊36萬,中間表62萬,關聯了卻沒用到中間表的城市id去查導致沒有用到索引,直接導致查詢崩潰

優化之後我的分頁查詢是這樣的

if("2".equals(customer.getsourcetype())

&&customer.gethohousecustomer()!=null

&&stringutils.isnotblank(customer.gethohousecustomer().gethocitycode()))else

就是你關聯我就要用我,不用我還要惹我就會給你點顏色看看

MySQL字符集不同表關聯索引失效

utf8mb4字符集的表mb4與utf8字符集的表utf8 關聯會產生索引失效的問題。utf8mb4 是utf8的超集,遵循小轉大的規則,即將utf8 字元轉換成utf8mb4。例如 mb4和utf8表都包含索引欄位name,做表關聯有兩種情況。大關聯小,小索引失效 以mb4表為基準表,left j...

mysql索引失效 MySQL索引失效的幾種情況

1.索引無法儲存null值 a.單列索引無法儲null值,復合索引無法儲全為null的值。b.查詢時,採用is null條件時,不能利用到索引,只能全表掃瞄。為什麼索引列無法儲存null值?a.索引是有序的。null值進入索引時,無法確定其應該放在 將索引列值進行建樹,其中必然涉及到諸多的比較操作,...

mysql索引失效 常見mysql索引失效條件

使用索引的一般語句 1 where條件中有or,除非or的所有欄位都有索引,只要有乙個沒有索引,就不走索引 explain select from jf user ju where ju.user id or ju.superior1 yyy user id是主鍵,superior1是普通索引,結果...