MySQL SQL 分析 - 参数化查询 vs query cache 功能.pdf
文本预览下载声明
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
显示全部