SELECT查询缓存中的SELECT关键字是否仍区分大小写?

Yua*_*tao 0 mysql database-performance

高性能MySQL书籍(2004)的查询性能章节称MySQL(4.0.1)试图在查询缓存中找到任何"SELECT"查询的结果,然后再费心去分析或执行它.MySQL使用它收到的确切查询文本,因此缓存是敏感的,这意味着

SELECT * FROM table1
Run Code Online (Sandbox Code Playgroud)

不同于

select * FROM table1
Run Code Online (Sandbox Code Playgroud)

我想知道MySQL 5.x中是否仍然如此,所以我们应该总是键入'SELECT'而不是'select'.

小智 5

MySQL查询缓存是大小写(和字节)敏感的.

在解析之前,将传入的查询与查询缓存中的查询进行比较,因此查询缓存将以下两个查询视为不同:

SELECT * FROM tbl_name
Select * from tbl_name
Run Code Online (Sandbox Code Playgroud)

查询必须完全相同(字节为字节)才能看作相同.另外,由于其他原因,可以将相同的查询字符串视为不同.使用不同数据库,不同协议版本或不同默认字符集的查询被视为不同的查询,并单独缓存.