-高并发:以后这个系统的用户肯定越来越多,我们要考虑高并发的问题。最主要的是缓存和负载均衡!!!
- 静态资源存储在云端,并做cdn加速。Css和js做压缩再存储云端。
- CDN加速:尽可能避开互联网上可能影响数据传输的速度和稳定性的瓶颈和环节,使内容传输更快,更稳定。CND加速需要依靠各个网络节点,比如100台cdn服务器分布在全国范围,从北京访问会从最近的节点返回数据(核心)。它是通过缓存或者主动抓取主服务器来实现资源储备。硬件:增强服务器的配置,这个太消耗成本了。限流,限制用户的请求,一般这个也不做,给用户的体验太差。
- 负载均衡:可能系统没有做任何负载均衡,所有请求直接到网关或业务系统,可能会造成系统宕机。可以使用nginx代理服务器负载均衡。还有前端部署在前端服务器,后端分离式部署。
- 查看日志文件:日志占用了很大的磁盘空间,单个日志文件大小可能上G,我们可以编写脚本,定时删除日志文件,时间可以删除30天以前的文件。
- 调整JVM参数:调整他的内存大小,xmx(堆的最大内存),xms(堆的初始化内存大小)
- 采用缓存:这里来引用redis,让请求不去访问数据库。
- 对数据库进行优化:采用集群部署,对应的表应该建立有效的索引,进行垂直分库,水平分表,利用中间件技术Mycat实现读写分离。
- 索引下推:mysql5.6引入新特性,通过减少回表次数,来提高数据库的查询效率。
- 主键索引与唯一索引的区别:主键是一种约束,唯一索引是一种索引,主键索引不允许有null值,唯一索引允许有null值;一个表中,最多创建一个主键索引,可以创建多个唯一索引,主键可以被其他表引用为外键。在InnoDB中如果没有定义主键,他会自动生成一个隐藏的主键。