Rumah > pangkalan data > tutorial mysql > 高性能MySQL-查询缓存介绍

高性能MySQL-查询缓存介绍

黄舟
Lepaskan: 2017-03-15 17:24:15
asal
1383 orang telah melayarinya


简单点说,就是对于相同SQL可以跳过SQL解析和执行计划生成阶段,直接返回缓存的结果。也就是缓存完整的SELECT 查询结果。

1. MySQL查询缓存:

缓存存放在一个哈希表中,通过一个哈希值引用。哈希值包括:查询本身、当前查询数据库、客户端协议等等。 但是需要注意的是SQL语句的任何不同都会导致缓存命中失败(空格、注释、变量名不同)

但是查询缓存也有严重的性能问题:
(1)读查询之前必须检查是否命中缓存

(2)查询如果不在缓存会被放入缓存中,占用系统消耗

(3)当数据表新更新了数据,缓存就会失效,带来很大的系统损耗。

很明显缓存和缓存失效都会带啦很严重的系统消耗,在高并发下查询缓存可能会带来系统性能下降以及僵死。所以建议使用memcache这种内存数据库来实现数据的缓存。


简单点说,就是对于相同SQL可以跳过SQL解析和执行计划生成阶段,直接返回缓存的结果。也就是缓存完整的SELECT 查询结果。

1. MySQL查询缓存:

缓存存放在一个哈希表中,通过一个哈希值引用。哈希值包括:查询本身、当前查询数据库、客户端协议等等。 但是需要注意的是SQL语句的任何不同都会导致缓存命中失败(空格、注释、变量名不同)

但是查询缓存也有严重的性能问题:
(1)读查询之前必须检查是否命中缓存

(2)查询如果不在缓存会被放入缓存中,占用系统消耗

(3)当数据表新更新了数据,缓存就会失效,带来很大的系统损耗。

很明显缓存和缓存失效都会带啦很严重的系统消耗,在高并发下查询缓存可能会带来系统性能下降以及僵死。所以建议使用memcache这种内存数据库来实现数据的缓存。

Atas ialah kandungan terperinci 高性能MySQL-查询缓存介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan