MYSQL SQL_NO_CACHE的真正含义

当我们想用SQL_NO_CACHE来禁止结果缓存时发现结果和我们的预期不一样,查询执行的结果仍然是缓存后的结果。其实,SQL_NO_CACHE的真正作用是禁止缓存查询结果,但并不意味着cache不作为结果返回给query。

SQL_NO_CACHE means that the query result is not cached. It does not mean
that the cache is not used to answer the query.

You may use RESET QUERY CACHE to remove all queries from the cache and
then your next query should be slow again. Same effect if you change
the table, because this makes all cached queries invalid.

mysql> select count(*) from users where email = ‘hello‘;
+----------+
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (7.22 sec)

mysql> select count(*) from users where email = ‘hello‘;
+----------+
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (0.45 sec)

mysql> select count(*) from users where email = ‘hello‘;
+----------+
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (0.45 sec)

mysql> select SQL_NO_CACHE count(*) from users where email = ‘hello‘;
+----------+
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (0.43 sec)

时间: 2024-10-14 21:14:51

MYSQL SQL_NO_CACHE的真正含义的相关文章

关于mysql的字段长度含义问题。

int的长度可不是自己定义的,系统已经定义好了. 如果是varchar类型的 你定义一个1,绝对不能输入abc. int(m),integer(m) 32位整数(4字节....) 其实这个m跟INT能表示的范围没有关系,只要你选择了INT,INT是用4个字节表示,1个字节8位,若表示无符号数时可以表示的范围是 0 ------- 2^32-1次方 ,你可以存储任何在这个范围内的数字.但也不是说跟表示完全没关系,mysql中有个zerofll,当建表时选择了0 填充之后存储就会有很大的不同,这时如

常见mysql报错代码含义

http://aresxin.blog.51cto.com/4734097/1623752

mysql待整理

前面讲到的:insert - select - where not exist 其实好像也是为了实现:插入数据时,如果有重复则不插入.参见:http://snowolf.iteye.com/blog/1568926 和INSERT IGNORE INTO 差不多,不过前者可以自己加条件,后者只能根据主键来判断是否重复. MySql一些开发规范:http://www.2cto.com/database/201403/285170.html 1. MYSQL SQL_NO_CACHE的真正含义 ht

MySQL提示符含义

http://www.splaybow.com/post/mysql-prompt-introduce.html mysql> 准备好接受新命令. 说明:正常等待输入的提示符. -> 等待多行命令的下一行. 说明:这是将一个SQL语句分多行输入时的提示.前提是你输入了一个不以分号结尾的SQL语句. '> 等待下一行,等待以单引号(“'”)开始的字符串的结束. 说明:前面你应该是已经输入了一个单引号,并且此单引号没有结束,系统等待你输入另一个单引号以配成一对. "> 等待下

MySQL Database Backup Methods Season 1 - mysqldump

mysqldump工具是MySQL数据库备份时, 经常用到的一个工具. 可以指定数据表, 某些数据库, 所有数据库级别的备份, 在命令行上敲入mysqldump回车, 可看到该三种方式的示例. [email protected]:~$ mysqldump Usage: mysqldump[OPTIONS] database [tables] OR     mysqldump [OPTIONS] --databases [OPTIONS]DB1 [DB2 DB3...] OR     mysqld

mysql 数据库服务中的应用程序

mysql 是一个数据库服务,而实现数据库服务是由mysql中的很多子应用程序来完成的(http://dev.mysql.com/doc/refman/5.7/en/programs-overview.html) 随笔一记:(概要,mysql中包含的应用程序的作用) 一:most of all. 1.mysqld :mysqld是 mysql最主要的程序,(原文为SQL daemon : sql 守护神,可见其重要性),sqld在mysql安装的过程中做了绝大部份的事情,连接mysql服务器的客

MySQL 数据库简单操作

对于想要从事或爱好mysql相关工作的童鞋们,有必要掌握在命令行下对mysql实现一些简单的操作.本文从描述了如何登录到mysql数据库服务器,如何在mysql提示符下发布命令,创建数据库,以及执行一些简单的DML操作. 1.连接到与退出mysql 为了连接mysql数据库服务器,当调用mysql时,通常需要提供一个MySQL用户名并且很可能需要一个密码.如果服务器 运行在登录服务器之外的其它机器上,还需要指定主机名.联系管理员以找出进行连接所使用的参数 (即,连接的主机 .用户名和使用的密码)

(6)mysql中的字符集

概述 ??从本质上来讲,计算机只识别二进制代码,因此,不论计算机程序还是其处理的数据,最终都必须转化为二进制码,计算机才能识别.人们给每一个文字符号编码以便计算机识别处理,这就是计算机字符集的由来. 选择合适的字符集 MySQL5.6支持几十种字符集,包括UCS-2.UTF-16.UTF-16LE.UTF-32.UTF-8.utf8mb4等Unicode字符集,选择字符集可以考虑如下几个因素: 满足应用支持语言需求,如果应用需要处理各式各样的文字,应该选择Unicode编码,对于MySQL,建议

Mysql密码管理及授权

目录 1 管理root用户密码 2 用户授权与权限撤销 3 安装图形管理工具 1 管理root用户密码 1.1 修改密码 方法1:用mysqladmin 该方式需要知道mysql的原密码 命令格式: mysqladmin  -hlocalhost  -uroot -p password "新密码" 方法2:需要登录到mysql 授权用户修改自己的密码: mysql> set password=password("新密码"); 数据库管理员重设其它用户的密码: