MySQL架构
1. mysql查询过程
分页查询:查询第n行到第m行记录
select * from table1 limit n-1,m-n;
select查询过程
所以全表扫描并不会撑爆数据库内存,最多只是占用net_buffer_length大小的内存。
2.主从数据备份过程
写的压力可以水平扩展和垂直扩展来解决,提高数据库并发的同时,会使跨表事务上升为分布式事务。
Slave_IO线程主要是将master上的binlong日志内容复制到slave的中继日志中(Relay_log),binlog顺序写,可以应对较高的并发量。
Slave_SQL线程负责将中继日志中的SQL执行一遍,单线程执行。
半同步复制
从MySQL5.5开始,MySQL已经支持半同步复制了,半同步复制介于异步复制和同步复制之间,主库在执行完事务后不立刻返回结果给客户端,需要等待至少一个从库接收到并写到relay log中才返回结果给客户端。相对于异步复制,半同步复制提高了数据的安全性,同时它也造成了一个TCP/IP往返耗时的延迟。
binlog日志作用:
主从复制,slave使用binlog来回放。
数据恢复。
可以设置binlog日志不刷盘来提高主的写入速度。
3.