前言
之前开发了办公室预约系统,功能上基本实现了,现在需要提升性能问题,比如考虑并发情况,在多个人同时预约的时候,怎样解决并发问题呢?其实本质是要对事务上锁。
1. 在MySQL方面提升
MySQL的性能分析
- MySQL Query Optimizer(自带的优化器)
- MySQL常见的瓶颈
- CPU饱和:通常发生在数据装入内存或者从磁盘中读数据
- 磁盘IO饱和:载入的数据远大于内存的容量
- 服务器性能饱和:可以通过top/free/vmstat/iostat查看系统性能状态
- Explain查询
- MySQL提供了一个 EXPLAIN 命令, 它可以对
SELECT
语句进行分析, 并输出SELECT
执行的详细信息, 以供开发人员针对性优化
- MySQL提供了一个 EXPLAIN 命令, 它可以对
主从复制
读写分离
索引优化
MySQL的悲观锁
MySQL的InooDB支持行级锁,当锁住某行数据时,其他进程不能对这行数据进行操作
2.消息队列(FIFO)缓存请求
把用户的请求放到消息队列中,用户把需求放在队列中,而系统通过队列处理需求,这样可以拦截大量的请求
3. Redis缓存
redis的WATCH监控: 在监控的事务,如果在事务执行期间被其他事务改动,则其它事务会被打断
4.设计分库分表
写在最后
以上是点滴思考和总结,将用在系统优化中,未完待续…