问题:执行explain分析sql
EXPLAIN
SELECT
de.*, a.id,
dt.disburseName,
u.realname hzUsername,
u.realname username
FROM
disburse_evidence de
LEFT JOIN account a ON a. NO = de.accountNo
LEFT JOIN disburse_type dt ON dt.id = de.payTypeId
LEFT JOIN USER u ON u.id = a.userId
其中disburse_evidence 和 account 未用到no字段和accountNo字段的索引
分析:
1、单独查询每个表,能使用索引,说明索引是正常的
2、查看这两个列是否有null值,有null,改掉后再次执行分析,还是未用到索引
3、查看字段类型是否相同--相同
4、查看是否允许为空,都不允许
5、查看两个字段的字符集,不相同,改正后能正确使用索引。问题解决