整体思路:优化代码,分离业务逻辑,数据库,最后加服务器等;redis
逐步解决方案,具体操做以下:sql
(1).页面的动静分离:数据库
页面生成了静态的缓存,页面中的图片、JS等静态资源推CDN;缓存
动态数据,能作缓存的作缓存(redis,memache);不能作缓存的,开始从代码层面下着手;服务器
(2).代码层面的优化:负载均衡
找到执行时间较长的脚本,着手分析,是否能够优化业务逻辑;性能
若是业务逻辑已经没法优化,考虑是否是数据库操做执行时间较长,若是是,开始从数据库层面着手;优化
(3).数据库层面的优化:中间件
找到操做频繁,看是够可以优化sql语句,如连表查询等等;队列
若是仍是到不到要求,对于操做频繁且数据库操做较大的数据,进行读写分离;
若是速度仍是达不到要求,考虑是否是单张数据表的问题了;
(4).数据表层面的优化:
若是是数据表中数据量过大,致使查询速度慢的:数据分片,横向切表;
若是是数据表查询数据过多,致使查询数据慢的,纵向切表,使热点数据和非热点数据分离;
若是速度仍是没有到达要求,那么恭喜你,你已经成功的积累了至关的用户量了,加服务器吧,作负载均衡吧。
(5).升级硬件,加服务器,作负载均衡。
补充:
1.针对非及时响应的业务,能够作队列,进行延时处理,以便后期统一处理;例如能够委托中间件(就像老板请的秘书),性能提高体如今写入数据时锁表时间的节省;
2.针对临时的热点活动类型业务,为了防止崩溃,但是使用独立的服务器,避免因为活动服务器的崩溃而致使其余主要业务服务器的崩溃。