1. 传统的MySQL 语句的执行过程是:
SQL 语句 -> 词法分析 -> 语句分析 -> 关系代数转换-> 优化 -> 执行计划生成-> 执行(存储引擎等部分)….
2.memcached执行的执行过程是:
memcached Command -> 执行(存储引擎相关部分)
3.从两者的执行过程可以看出,memcached在操作数据库中的表的过程中省略了词法分析、语句分析、关系代数转换、优化等部分,直接操作Innodb存储引擎,进行数据操作,缩短了查询链路,尤其是将交易这种场景下最耗系统资源的sql_parse部分省略掉了。
4.memcached是如何将关系型数据库的库/表/列这些转换为kv的?
其实,memcached plugin是通过一个内部配置表(innodb_memcache.container表),将要访问的key/value和具体的库/表/字段关联起来。