MySQL [Err] 1055 -Expression #
今天一个朋友问我一条SQL语句,看是否可以优化,结果我执行了一遍,发现报错了。
错误的具体信息如下
经过分析发现是SQL_MODE的问题,因为在MySQL5.7中,SQL_MODE改为严格模式
查看MySQL的SQL_MODE
修改MySQL的配置文件,在配置文件中添加sql_mode
vi /etc/my.cnf
sql_mode = 'PIPES_AS_CONCAT,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE'
重启数据库,执行SQL
考虑是否可以优化此SQL
查看执行计划
p 表做了全表扫描
查看P表
P表执的时间也很慢,此SQL语句没有where条件,无法建立索引,所以无法优化。