对于大型系统,Oracle,Sqlserver无疑是最好的选择,但是现在越来越多的小网站,他们没有自己的服务器,只是买别人的空间和数据库,但这小小的数据库在大型数据库的性能并没有比较,而且对小型数据库优化自己,今天和大家分享与单引号没有很大的差异,MySQL,这是有意义的MySQL数据库的性能优化。
正如我们刚才所说,生活中难免会有些失望。例如,我们使用字符串类型的字段作为主键,这在表面上非常不舒服。然而,事实证明这是有用的,这个问题也是存在的,在字段值加单引号的查询语句中,没有查询时间间隔的一百倍!
试验台:
复制代码代码如下所示:
创建表` foo `(`关键` varchar(10)不为空,`时间` int(11)不为空,小学);
然后插入大约300000个数据,然后执行以下SQL语句:
复制代码代码如下所示:
从1293322797键中选择*
查询大约需要0.1288秒,花费大约这么长时间,然后将一个引用添加到1293322797。
复制代码代码如下所示:
SELECT * FROM ` foo `哪里`关键` = '1293322797
查询花费0.0009秒,基本上是差值的100倍!!!也就是说,没有一个单引号MySQL的性能损失了100倍,非常令人震惊的比例!
然后,我们用解释的方式运行上面的两个语句,并看到下面的两个图片:
当没有一个单一的引号
当有一个单一的引号
很明显,没有主索引就没有使用单引号,并且进行了一次完整的表扫描,上面的索引可以与单引号一起使用。
然后我做了一个以上的测试,结果集是相同的,他们花了同样的时间如上,并通过解释测试,同上。
复制代码代码如下所示:
SELECT * FROM ` foo `哪里`关键` > 1293322797select * ` foo `哪里`关键` > '1293322797
添加单引号和没有单引号是一个很大的区别!它将对MySQL的性能产生如此大的影响。
后来,我将字段键改为int类型。这时,添加字段引用没有什么区别。解释表明,他们也可以利用的主要指标,但key_len缩短。
总之,在编写sql查询时,仍然需要添加一个引号。看起来不坏。