缘由
由于临近上线,做测试的时候发现数据查询不了(前提:索引都加了)
按照平时的话就想想应该没啥问题
但他们发现有各种mysql的bug,我上去一看数据量大了,但是也就几万条数据应该也不至于崩了吧…于是就看看咋回事
以下是表
sql语句
EXPLAIN SELECT *
FROM round_appl ra
LEFT JOIN round_appl_quotalot raq ON ra.APPL_SEQ = raq.APPL_REF_NO
结果发现,懵了
居然要扫8200 * 22281次!!! 这也太不合理了吧o(╥﹏╥)o
解决
于是我仔细再看看表结构…终于让我逮到了…不知道是谁设计的表…居然varchar join bigint !!! 字符串数据类型居然和数据类型join…这是要我背锅啊…我可真是服了…于是我赶紧改了如下
再次执行sql语句,果不其然
这才扫8200 * 3次…
所以…建立关系时数据结构类型和长度都要保持一致啦…