thread_pool可以使用Percona的版本和Mariadb的版本 都是支持的
主从切换是根据HA的方式,TDDL(Taobao Distribute Data Layer) 的方式的话,推送diamond的配置信息到app,如果是DNS的方式,调用DNS的API,切换主备.但是切换时,处理的顺序非常关键.
淘宝根据自己的业务特点开发了TDDL(Taobao Distributed Data Layer 外号:头都大了 ©_Ob)框架,主要解决了分库分表对应用的透明化以及异构数据库之间的数据复制,它是一个基于集中式配置的 jdbc datasource实现,具有主备,读写分离,动态数据库配置等功能。
读写分离常用的有两种:一种是数据源配置管理方式,如TDDL等,可以细粒度话控制读写;一种是proxy方式,如mysql-proxy等
mmm至少有数据不一致问题,MHA还是比MMM靠谱的多。
Mysql query cache,就是mysql存放之前select语句的hash值和结果集的内存地址。 如果查询能够命中,并且内存没有置换出的话就可以直接返回结果了。这种操作严重依赖sql语句必须是严格一致的,存储是通过hash查询sql的值存放的,如果数据、索引等变化了,query cache会失效,后续会释放内存。对于读写比大的系统是比较好的,否则会出现大量失效内存。这个在mysql中设计的并不是很好,在oracle中比较牛逼。