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

时间:2012-03-15 15:39:06

标签: mysql database-performance

高性能MySQL书籍(2004)的查询性能章节称MySQL(4.0.1)尝试在分析或执行它之前在查询缓存中找到任何“SELECT”查询的结果。 MySQL使用它收到的确切查询文本,因此缓存是敏感的,这意味着

SELECT * FROM table1

不同
select * FROM table1

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

2 个答案:

答案 0 :(得分:5)

MySQL查询缓存为case (and byte) sensitive

  

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

SELECT * FROM tbl_name
Select * from tbl_name
     

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

答案 1 :(得分:0)

不是,但你会知道,如果你尝试过它!

修改 以下都不是,以防你想知道。

  1. 插入
  2. 其中
  3. 选择(上方)
  4. 顺序
  5. 其他任何人!