文档详情

MySQL SQL 分析 - 参数化查询 vs query cache 功能.pdf

发布:2017-09-12约1.65万字共8页下载文档
文本预览下载声明
TTeerrrryy TTssaanngg MMyySSQQLL SSQQLL 分分析析 -- 参参数数化化查查询询 vvss qquueerryy ccaacchhee 功功能能 分类: mysq inux 2013-10-23 16:25 331人阅读 评论 (1) 收藏 举报 mysq 数据库缓存性能 query cache,  mysq 5 开始附带的一个功能, 与引擎无关, 只与数据查询语法相关。   测试描述: 当前使用中是 MySQL-5.6.14 Linux RHEL6  64 位系统产生环境,  使用 INNODB 引擎, 分配 innodb 2g 内存空间   [root@TiYanP at ~]# uname -a Linux TiYanP at 2.6.32-358.e 6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64x86_64 GNU/Linux mysq se ect version (); ++ | version () | ++ | 5.6.14    | ++ 1 row in set (0.00 sec) mysq show variab es ike innodb_buffer_poo _size; +++ | Variab e_name           | Va ue      | +++ | innodb_buffer_poo _size | 2147483648 | +++ 1 row in set (0.01 sec)   Query cache 功能: 利用 qeury_cache_size 定义内存大小, 内存用于把用户 SQL 放入内存中, 包括 SQL 语句, 包括SQL 语句执 行的结果 假如下一次查询时使用相同的 SQL 语句, 则直接从内存中获得结果, 不再进行 SQL 分析, 不在进行磁盘 I/O 读数据。加速数据查询返回结果。   实现 目标,开启 QCACHE 功能, 如 my.cnf 定义 query-cache-size query-cache-type=ON 查询数据库中是否使用当前功能 mysq show status ike %qcache%; +++ | Variab e_name           | Va ue    | +++ | Qcache_free_b ocks      | 440      | | Qcache_free_memory      | | | Qcache_hits             | 13176    | | Qcache_inserts          | 29777    | | Qcache_ owmem_prunes    | 0        | 1 | Qcache_ owmem_prunes    | 0        | | Qcache_not_cached       | 45862    | | Qcache_queries_in_cache | 2098     | | Qcache_tota _b ocks     | 4701     | +++ 8 rows in set (0.02 sec) 参数返回结果不再一一详细描述, 自行参考官方文档, 从上返回结果可以看到,使用中的数据库 SQL 命中率 (Qcache_hits) 并不理想,原因与业务有关。   SQL 分析一, 使用了 QUERY CACHE 的好处 原理, 利用 EXPLAIN 分析当前 SQL 执行计划, 利用 PROFILE 功能分析当前 SQL 执行计划,过程 执行下面语句进行分析 mysq exp ain se ect tbcrbtnumb0_.id as id41_, tbcrbtnumb0_.business_ring_id as business2_41_, tbcrbtnumb0_.app ication_no as app icat3_41_, tbcrbtnumb0_.mobi e as mobi e41
显示全部
相似文档