msyql 主从复制读写分离
主从复制
主从复制和读写分离都是 MySQL 的高可用性和性能优化方案。主从复制可以提高数据库的可用性,因为在 master 服务器失效时,slave 服务器可以继续提供服务。同时,slave 服务器也可以用作读操作,减轻 master 服务器的压力。读写分离将读操作分配到多个 slave 服务器上,减轻 master 服务器的压力。同时,它也可以提高数据库的可用性,因为在 master 服务器失效时,slave 服务器可以继续提供服务。
主从复制的核心算法原理是通过 binary log 和 relay log 实现的。binary log 是 master 服务器上的日志文件,记录了所有的写操作。relay log 是 slave 服务器上的日志文件,用于传输 master 服务器的 binary log 到 slave 服务器。
-
在 master 服务器上启动 binary log。
-
在 slave 服务器上启动 relay log。
-
在 slave 服务器上启动复制线程,将 master 服务器的 binary log 传输到 slave 服务器。
-
在 slave 服务器上启动应用线程,将 relay log 应用到 slave 服务器上。
函数
查询 INVOICE_IDS 字段中包含 99232 的记录
select *
from moa_fnd_submit_material where find_in_set('99232', INVOICE_IDS);
使用 MySQL 提供的字符串函数 locate()函数。
MySQL 还提供一个字符串函数 locate(substr,str)函数,用于返回 str 中 substr 所在的位置索引,如果找到了,则返回一个大于 0 的数,否则返回 0。
select * from user where locate('yanggb', hobby ) > 0;
适用的场景和 find_in_set()函数差不多,两个函数的区别大概只有返回值上的不同。