今天在预生产环境配置环境的时候出现了个问题, 就是我一个查询SQL竟然花了17秒, 这是一个严重的问题.
本来以为是环境的问题, 后来发现环境没问题, 那就是我的SQL有问题, 初步认为是没有走索引. 我把控制台
打印的SQL放到预生产环境中直接执行, 果然花了10多秒. 执行了SQL计划发现确实没有走索引, 但是测试环境
的脚本却走了索引, 一样的SQL不同环境执行起来效果不一样, 这个确实很纳闷, 想了一下可能是创建表除了问题,
果然是这样的, 预生产环境创建表的SQL脚本没有指定编码, 而生产环境表的编码是UTF-8, 我新建的表没有指定编码
就默认为UTF-8mb4.
虽然创建了索引, 但是因为编码不同, 表连接查询不走索引, 主表的数据量又庞大, 全表查询就十分慢了, 其实测试环境
建的表是设置了编码, 但是我默认以为是UTF8, 就把设置编码的语句删除了, 聪明反被聪明误,