主从复制 replication:主库备库,大规模高性能应用的基础。水平扩展。
原理:
1、基于sql语句的复制。优点:简单方便;缺点:有些sql不能被正确记录,串行化更新,需要跟多的锁,数据量会很巨大。
2、基于行的复制。缺点:一条sql可以记录的会出现大量的日志记录,浪费空间。
3、采用了io线程和sql线程异步处理。
涉及到的文件:二进制binary日志 ,中继日志(备库中 )
可能存在的问题:
1、myisam引擎的表 主库在运行sql的时候突然被中断,会导致备库执行完整,主库没有执行完整。
应对方法:中断之前需要确保stop slave。
2、尽量采取规范化的做法,这样能避免常见的问题。
备库只读,
使用工具 percona 工具的使用。
mysql实战经验:
1、5.6以前如果修改表结构,对于大数据量表的操作非常耗时,因为会对表创建临时表拷贝数据再删除旧表,有100w条数据就要拷贝100w次,插入100w次。所以对于有大量数据的表ddl的时候要考虑周全。
2、大数据分页使用deffed join :延迟关联,原理是覆盖索引。
3、高版本mysql5.6 可以开启mrr 和cip 以支持范围查询和like查询。
一般来说项目中用到的比较多的是范围查询和like查询,这个特性可以说让mysql的索引能力提高很多。
4、多个inner join 拆分。mysql本身有缓存的机制。可以