最近升级一个系统后,产生了不少性能上的问题,于是把慢日志拿下来分析。
分析后客户老是觉得整形字段在查询条件里的值加上单引号会使该字段无法使用索引,从而导致性能。如下面的语句:
数据库有一个ts_user这个用户表,主键是整形(int)自增加的id
mysql> select id,name from ts_user where id in ('15','25');
+----+------+
| id | name |
+----+------+
| 15 | 媚儿 |
| 25 | 伊娃 |
+----+------+
2 rows in set
客户非要修改成 mysql> select id,name from ts_user where id in (15,25); 事实真如他所说?整形带单引号性能会下降?
于是上网找找答案,果然有这个文章说这个的:一个单引号引发的MYSQL性能问题分析
然后在数据库里重新验证下,确实如果是整形的话真的没有必要为有没有单引号这个问题来较真,相反,为了统一风格,减少出错的可能性,还提倡都加上单引号,这样字符型的字段也不会出错。
学习了!