严格意义上讲,MySQL 读、写分离确实存在上述情况,这是由Master-Slave 异步复制存在延迟所导致的,且Master binlog的写入为多线程,而Slave同步的sql_thread为单线程(MySQL5.6之前),两者写入速度不一致,在高并发写入的情况下,Slave节点延迟会更大; 所以,读、写分离时,一般的做法是,前端程序加判断,首先检查SLAVE节点同步位置以及状态是否同步至最新,确认其正常后,然后将查询请求发送至此节点。
方法如下:
1、请求发送过来时,首先在Master节点执行"Show master status",记录下当前的binlog以及position
2、在SLAVE节点上,执行 select master_pos_wait(binlog, pos[, timeout]), 等待同步到最新节点,然后发送查询请求
相关文章
- MySQL之改_update
- MySQL索引的使用方式和缺点
- 基于mini2440的IIC读写(裸机)
- MySQL导出数据文件
- MySQL if,ifnull,nullif 函数
- MySQL中的IFNULL,IF,NULLIF函数
- WNMP环境搭建步骤 nginx1.4.3+php-5.3.27+mysql-5.5+RunHiddenConsole
- Mysql5.7自定义函数递归报错1424 Recursive stored functions and triggers are not allowed
- 有关使用phpstudy搭建sqli-lab环境搭建时发生Uncaught Error: Call to undefined function mysql_connect()错误
- mysql if()