以前没怎么用过mysql,对其一些内幕不是很了解。昨天查询两张表的时候,等了10秒钟没返回结果,把查询进程停掉,然后执行解析计划发现没用上索引。重建了一遍索引依然未果。
后来看两张表的DDL描述,发现一张表的字符集是latin1,另一个是utf8,latin1的表是从其他库里copy过来的,当时没注意。于是猜想是否是关联的时候数据库自己又做了字符集转换导致索引失效。把latin1的字符集改为utf8,执行成功。看来果然如猜想一样。
以前没怎么用过mysql,对其一些内幕不是很了解。昨天查询两张表的时候,等了10秒钟没返回结果,把查询进程停掉,然后执行解析计划发现没用上索引。重建了一遍索引依然未果。
后来看两张表的DDL描述,发现一张表的字符集是latin1,另一个是utf8,latin1的表是从其他库里copy过来的,当时没注意。于是猜想是否是关联的时候数据库自己又做了字符集转换导致索引失效。把latin1的字符集改为utf8,执行成功。看来果然如猜想一样。