作为mysql的菜鸟的我,还是在一边自娱自乐的看着乏味的文档,但是有一个小小的差异不知道你发现了没有?先看两个比较简单的图我来给大家慢慢解释~
是不是很简单呢?但是差异大家好好看看,时间发生变化了,而且时间变成了0.00 sec!这个是我连续两次执行同一条查询语句发现的结果~
下面我有两种解释,1.mysql自身的优化做的很好,使得在第二次执行那个的时候时间会很快很快~ 2.mysql有缓存机制,对于执行过的查询采用缓存快速显示执行结果。如果是缓存,那缓存的位置又是在什么地方呢?
首先我通过一个测试否定了第一种解释,我在执行一次插入之后再执行一次查询结果让我否定了第一种解释。结果如下:
<结果还是0.00 sec!>
第二个解释我是在cc的脚印的博文中看到这样一条解释才恍然大悟的,mysql 选项: -n, --unbuffered Flush buffer after each query.
//使用MySQL查询的时候,如果连续两次执行同一条SELEC
有缓存我也不知道在哪里,怎么办?下面这条告诉你缓存是怎么回事~
查询缓存相关参数语句:
SHOW VARIABLES LIKE '%query_cache%';
结果如下:
have_query_cache =YES,说明缓存是有效的,而且这个值是只读的事不允许修改的。
query_cache_size是缓存内存大小,它的修改需要采用以下语句:
set global query_cache_size=600000;
因为该数据全局的所以必须加上global才能设置成功。
具体的缓存机制推荐大家查看
mysql查询缓存
的详细介绍。
好了,今天的差异我就给解释到这里了,有问题才能学到东西,不是吗?