高并发之数据库优化

数据库缓存

常见的缓存形式:内存缓存,文件缓存

mysql查询缓存(了解即可)

query-cache-type
查询缓存类型,有0、1、2三个取值。0则不使用查询缓存。1表示
始终使用查询缓存。2表示按需使用查询缓存。

query_cache_type为1时,亦可关闭查询缓存
SELECT SQL_NO_CACHE * FROM my_table WHERE condition;

query-cache-type为2时,可按需使用查询缓存
SELECT SQL_CACHE * FROM my_table WHERE condition;

query_cache_size
默认情况下query-cache-size为0,表示为查询缓存预留的内存为0,则无法使用查询缓存
SET GLOBAL query_cache_size=134217728;

查询缓存可以看做是SQL文本和查询结果的映射,第二次查询的SQL和第一次查询的SQL完全相同,则会使用缓存。

SHOW STATUS LIKE‘Qcachehits‘;//查看命中次数,表的结构或数据发生改变时,查询缓存中的数据不再有效

清理缓存

FLUSH QUERY CACHE;//清理鱼询缓存内存碎片
RESET QUERY CACHE;//从查询缓存中移出所有查询
FLUSH TABLES;//关闭所有打开的表,同时该操作将会清空查询缓存中的内容

memcache缓存

通用缓存机制,用查询的方法名+参数作为查询时的key value对中的key值

redis缓存

类似memcache的缓存,支持实务,支持多种数据类型.

Redis用于数据量较小的高性能操作和运算上,Memcache用于在动态系统中减少数据库负载,提升性能;适合做缓存,提高性能

其他数据缓存

Session

session_set_save_handler

数据库优化

数据表数据类型优化
索引优化
SQL语句的优化
存储引擎的优化
数据表结构设计的优化
数据库服务器架构的优化

相关文章