最近在开发项目中遇到了一个问题,存储过程执行的时间过长,只是简单的查询语句。
通过不同的测试发现,只要当增加条件 where examid=74时,执行的时间才会过长,通过查询发现examid用的varchar字段类型,但却在赋值时没有加单引号:
对于varchar或者char字段里,如果只放数字类型的字符串,可以不加单引号执行SQL语句,不报错:
例如:
正常的写法是:
<pre name="code" class="sql"><span style="font-size:18px;">select * from examstudentscore where examid=74</span>
但你可以写这样写:
<span style="font-size:18px;">select * from examstudentscore where examid='74'</span>
这条语句完全可以正常执行,但是表数据量很大的时候速度很慢。
字段是varchar,不强制限制赋值必须用单引号,字母的可以检测到,但数字就不会。
所以当字段类型为varchar或者char 时,要加单引号。
有时候 sql 语句对于少数量的查询没问题,但是大数据 时间就会太长了。所以要注意sql的优化。