MySQL 的读写分离方案,用得好能省掉你一半的性能烦恼。Amoeba 的配置方式比较简单,适合不想折腾太多脚本的你。写操作走主库,读操作扔给从库,压力一下就分散了,响应也快了不少。
读写分离其实就是个分工协作的逻辑,主库写数据,从库读数据,像流水线一样高效。对高并发业务友好,比如电商下单+查看订单,读多写少的场景效果更。
说到实现方式,分三种:中间件、应用层和数据库自身。中间件像 Amoeba 和 MySQL Proxy 这种挺常见,Amoeba 更适合图省事,配置少;Proxy 灵活但脚本多,看你偏好。
Amoeba 的配置还挺直观的,主从建好之后配置下 dbServer.xml
就能跑。像下面这样授权主库复制权限:
GRANT REPLICATION SLAVE ON *.* TO repl_user@192.168.14.132 IDENTIFIED BY 'copy';
再在从库连回主库,就可以开始同步数据啦。让 Amoeba 接管主从,自动分流读写,省心不少。
哦对,主从同步用 STOP SLAVE + CHANGE MASTER TO 搭配配置就行,别忘了看下主库的 SHOW MASTER STATUS
,不然位置错了同步出问题。
如果你用的是 Web 应用,又不想让后端到处判断主从,那 Amoeba 确实是个比较稳妥的选择。还可以和 MyCat 或 Proxy 比着选,适合自己的才最重要。