视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mysql应用中常用到的优化
2020-11-09 09:15:24 责编:小采
文档

使用连接池
对于访问数据库来说,建立连接的代价比较昂贵,因此,我们有必要建立"连接池"以提高访问的性能。我们可以把连接当作对象或者设备,池中又有许多已经建立的连接,访问本来需要与数据库的连接的地方,都改为和池相连,池临时分配连接供访问使用,结果返回后,访问将连接交还。
减少对Mysql 的访问
避免对同一数据做重复检索:
应用中需要理清楚对数据库的访问逻辑,需要对相同表的访问,尽量集中在相同sql访问,一次提取结果,减少对数据库的重复访问。
使用mysql query cache:
作用:查询缓存存储SELECT 查询的文本以及发送给客户端的相应结果。如果随后收到一个相同的查询,服务器从查询缓存中重新得到查询结果,而不再需要解析和执行查询。
适用范围:不发生数据更新的表。当表更改(包括表结构和表数据)后,查询缓存值的相关条目被清空。
查询缓存的主要参数设置:
show variables like ‘%query_cache%’;
have_query_cache 表明服务器在安装使已经配置了高速缓存
query_cache_size 表明缓存区大小,单位为M
query_cache_type 的变量值从0 到2,含义分别为
0 或者off(缓存关闭)
1 或者on(缓存打开,使用sql_no_cache 的select 除外)
2 或者demand(只有带sql_cache 的select 语句提供高速缓存)
在SHOW STATUS 中,你可以监视查询缓存的性能:
变量含义
Qcache_queries_in_cache 在缓存中已注册的查询数目
Qcache_inserts 被加入到缓存中的查询数目
Qcache_hits 缓存采样数数目
Qcache_lowmem_prunes 因为缺少内存而被从缓存中删除的查询数目
Qcache_not_cached 没有被缓存的查询数目( 不能被缓存的, 或由于
QUERY_CACHE_TYPE)
Qcache_free_memory 查询缓存的空闲内存总数
Qcache_free_blocks 查询缓存中的空闲内存块的数目
Qcache_total_blocks 查询缓存中的块的总数目
加cache层:
Cache(高速缓存)、Memory(内存)、Hard disk(硬盘)都是数据存取单元,但存取速度却有很大差异,呈依次递减的顺序。对于CPU 来说,它可以从距离自己最近的Cache 高速地存取数据,而不是从内存和硬盘以低几个数量级的速度来存取数据。而Cache 中所存储的数据,往往是CPU 要反复存取的数据,有特定的机制(或程序)来保证Cache 内数据的命中率(Hit Rate)。因此,CPU 存取数据的速度在应用高速缓存后得到了巨大的提高。
因为将数据写入高速缓存的任务由Cache Manager 负责,所以对用户来说高速缓存的内容肯定是只读的。需要你做的工作很少,程序中的SQL 语句和直接访问DBMS 时没有分别,返回的结果也看不出有什么差别。而数据库厂商往往会在DB Server 的配置文件中提供与Cache 相关的参数,通过修改它们,可针对我们的应用优化Cache 的管理。

更多相关文章请关注PHP中文网(www.gxlcms.com)!

下载本文
显示全文
专题