联合索引
tb_cart表user_id和item_id设为联合索引
sql1, sql2, sql3会走索引, sql4不走索引
使用联合索引, 一定要注意索引字段的顺序
SELECT * FROM tb_cart WHERE user_id = 1 AND item_id = 1;
SELECT * FROM tb_cart WHERE item_id = 1 AND user_id = 1;
SELECT * FROM tb_cart WHERE user_id = 1;
SELECT * FROM tb_cart WHERE item_id = 1;
主从复制
主库将数据改变的sql语句记录到二进制日志中(binary log), 然后拷贝到从库中执行, 从而保证两边的数据一致
读写分离解决方案
在进入service之前, 使用AOP来做出判断, 是使用写库还是读库, 判断依据可以根据方法名判断, 比如说以query、find、get等开头的就走读库,其他的走写库。