创建索引的注意事项
- 并不是创建的索引越多越好,索引对于查询能进行加速,但对于插入、删除和更新,由于需要对索引进行创建与维护,会影响了这三个操作的速度
- 且索引占用空间
- 创建索引一般创建在主键上、需要频繁使用的条件字段上、范围查找
- 对于多值索引满足最左前缀字段
秒杀系统
秒杀获得开始之前:
- 将静态网页资源放到反向代理上进行缓存,避免所有的请求达到服务器。
- 将活动信息、开始信息、能否进行秒杀活动信息存到redis缓存中
秒杀活动开始
- 由于秒杀物品数量有限,可以用队列来存储成功抢到货物的用户信息。
- 当货物数据已经被抢购完了,则将redis缓存中能否进行秒杀活动设为false,表示秒杀活动已结束。
活动结束之后
- 消息队列削峰、解耦、异步
Spring事务原理
Spring事务的本质是对数据库事务的封装支持,没有数据库对事务的支持,Spring本身无法提供事务管理功能。
使用事务的流程
获取连接–>开启事务–>执行CRUD操作–>提交/回滚事务—>关闭连接
原理
Spring事务通过AOP动态代理实现。
种类
函数式事务:自己通过事务管理器开启和关闭事务
声明式事务:1.XML,解耦 2、注解,AOP方便