大型网站优化指南:打造流畅的在线体验

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 大型网站优化指南:打造流畅的在线体验

大型网站

大型网站是指具有高并发、大流量、高可用性、海量数据处理能力,并能提供7*24小时不间断服务的网站。

这些网站通常面临用户分布广泛、网络情况复杂、安全环境恶劣等挑战。

同时需要快速适应市场变化和用户需求,通过渐进式的发展策略运营成大型网站。

大型网站的目标包括提供快速访问体验、高安全性、可扩展性,以及通过硬件的增加或减少来提高处理能力或降低成本。

名词解析

  • pv (page views) 即页面浏览量;用户每1次对网站中的每个网页访问均被记录1次
  • uv (unique visitor) 是指不同的、通过互联网访问、浏览这个站点的自然人
  • ip 指访问某个站点的不同IP地址的数量

通过名词定义:大型网站一般是指24小时内pv值达到百万或千万级别,uv值十万以上,ip值十万以上的网站

大型网站的问题

大并发

在同一个时间点,有大量的客户来访问我们的网站,如果访问量过大,就可能造成网站瘫痪。

解决方案: 浏览器与服务器之间采用负载均衡 ,负载均衡有硬件:NetScalerF5(效果好,价格昂贵),软件有:LVSNginx

大流量

有大量的图片,视频,flash, 这样就会对流量要求高,需要更多更大的带宽。

解决方案:

  1. 可以启用apache自带的数据压缩机制( gzip  , deflate )
  2. 使用CDN(内容分发网络)服务

CDN(内容分发网络):大型网络巨头公司在全世界都分布有CDN节点(阿里、腾讯),你购买他们的服务,然后别人要访问你服务器上的数据,比如是北京网友访问,他先找北京周边的CDN服务节点,看他上面有想要的资源没有,第一次是没有的,然后北京CDN就再到你的服务器上下载内容,并保存起来、这样,下一次有人再来访问你的资源,就可以直接在CDN上读取,速度更快

注意:防止黑客的DDOS攻击:肉鸡、最有效的办法就是CDN,因为不同地区的IP访问的都是他们当地的 CDN,就算再大的流量也不怕

大存储

海量数据需要存储。大量的数据读写操作,数据库可能无法响应

大型网站架构

分层+负载均衡+集群(简单来说就是通过增加服务器来分流)。服务器与数据库之间:读写分离、主从同步

优化

使用缓存技术

  • 内存缓存:redismemcachemysql数据库(memory引擎)
  • 页面缓存: 页面静态化

页面静态化

因为很多动态网址,要访问数据库,这样造成访问速度慢,因为我们可以把动态页面,改成静态页面,从而减少对数据库的访问次数,提速。

数据库优化

表的设计满足3NF

1NF

指表的属性(列)具有原子性, 即表的列的不能再分了,不能有重复的列

2NF

所谓2NF,就是指我们的表中不能有完全重复的一条记录(行).一般情况下通过设置一个主键来搞定,而且该主键是自增的。

3NF

所谓3NF就是指,如果列的内容可以被推导(显示推导,隐式推导)出,那么我们就不要单独的用一列存放。

所有的规则都是建立在实际上面的,一般设计是遵循3NF的,有时也会反3NF比如学生表的总金额,班级的总金额

开启慢查询

#慢查询开启,后面的文件路径是可以更改的
log_slow_queries="D:/log/mysql_slow.log"  
#1定位超过多少秒为慢查询
long_query_time=1
#上面的语句的意思是,超过1秒钟的语句,会被记录在D:/log/mysql_slow.log这个文件中
需要去里面看是那一条语句有问题
# Time: 180922 18:20:16 #语句执行的时间
# User@Host: root[root] @ localhost [127.0.0.1] #数据库的用户和域名
# query_time: 执行时间   #lock_time:等待时间
# Query_time: 1.693957  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 1
SET timestamp=1537611616;
#执行的语句
delete news,news_content from news left join news_content on news.news_id = news_content.news_id whe
开启慢查询牺牲sql的执行效率
一般是项目上线前一个月开启
还有就是项目运行一年之后开启一个月

分析sql查询语句

# 在查询语句前面加上explain用于分析语句,看查询了多少条,用没有用到索引
explain SELECT * from emp where ename="odAsmf";
# 查询出来的数据有
selecp_type:查询类型(slmple:简单查询)
type :all 表示全表查询
possible_keys :表示有什么索引可以用
 key: 当前用到的索引
rows:扫描了多条数据



根据分析结果,看如何添加索引

索引的原理:二叉树,平衡二叉树

索引的优缺点

索引的缺点:
增删改速度慢.. 
优点:
查询速度快…

索引一般使用最左匹配:就是复合索引,只能匹配最左边的

常用索引

主键索引
  primary
唯一索引
  unique
  用在身份证 用户名等等
  
普通索引
  normal
  在不能用使用上面两种情况下使用
搜索功能的时候,一般where后面字段需要添加索引

数据类型的选择

  1. 小于255个用varchar(255)
  2. 大于255用text
  3. 数字用int  tinyint
  4. 价格 decimal 元     int 分
  5. 手机号 varchar(20)
  6. 时间 int   时间戳
  7. md5加密  varchar(32)

一般情况,不参于运算都可以用varchar的

总结

在考虑优化大型网站的时候一般按照如下步骤优化:

1.静态资源用CDN加速

2.优化数据库

  • 表的设计要合理(满足 3NF )
  • 添加索引(主键索引|全文索引|唯一索引|普通索引|空间索引)
  • 优化 sql 语句
  • 分表( 水平分表,垂直分表),分区 mysql 数量级 千万   字段复杂 百万
  • 读写分离
  • 优化 my.ini 配置
  • 软件硬件应当升级

3. 优化慢查询

  1. 开启慢查询
  2. explain 分析 SQL 语句
  3. 合适地方添加索引(主键 -> 唯一 -> 普通)

4. 优化缓存

结合 redis 做缓存处理

5. 考虑分库分表

主从同步 读写分离

采取 分表 10G1000W 才考虑

查询的时候,where 后面的字段一般要索引

6. 增加物理设备


相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
4月前
|
存储 安全 搜索推荐
ONLYOFFICE 8.0:提升办公效率的全新体验
ONLYOFFICE 8.0:提升办公效率的全新体验
34 2
|
4月前
|
开发者
提升用户黏性:现成体育直播源码开发设计哪些关键功能
面对激烈的市场竞争,如何通过关键功能设计提升用户黏性,使之成为用户长期依赖的首选平台,是每一个开发者必须深思的问题。如下参考“东莞梦幻网络科技”现成体育直播源码,为了吸引更多用户并提高他们的黏性,开发哪些关键功能,帮助实现这一目标:
手机直播app源码部署搭建:带货潮流,商城功能!
商城功能对手机直播app源码平台是非常重要的功能之一,手机直播app源码平台商城功能丰富了用户的购物体验,促进了用户之间的交流和社交,形成了更加健康、活跃的社区生态。可以预见的是,手机直播app源码平台商城功能将在未来为用户带去更多的乐趣和便利。
手机直播app源码部署搭建:带货潮流,商城功能!
游戏直播软件源码开发搭建,平台获利方法有哪些?
在互联网新时代,随着直播技术成熟,泛娱乐产业备受市场追捧,当中娱乐游戏直播平台在这一行业中处于核心关注热点。即使由于短视频的兴起,其增长速度显著下降,但是其吸金实力始终不可小嘘。
体育赛事网站源码搭建,如何提升平台用户量
导语:自从“东莞梦幻网络科技”所提供的体育直播成品源码,构建体育直播平台更加低门槛简单。但是,怎样在瞬息万变的市场当中想要获得成功并吸引更多用户到平台,成为了平台发展核心要素。本文为您探讨怎样通过3个方面覆盖式营销、提升平台用户体验以及坚持可持续发展来提高体育直播平台的用户量。
推荐5款免费且无广告的软件,助你提升效率
有时候一些小工具,能给你带来一些意想不到的效果,我们来看看下面这5款工具,你又用过其中几款呢?
112 0
推荐5款免费且无广告的软件,助你提升效率
|
机器学习/深度学习 搜索推荐 数据挖掘
Sitecore,用个性化为用户带去更好的体验
在信息泛滥的时代,用户也越发渴望品牌可以为他们提供针对性的内容,而不是将所有的产品的信息堆砌到他们眼前。推动个性化体验形成,成为了满足用户需求,提升品牌竞争力的必须面对的问题。相对于盲目地追求覆盖率却难成体系化的多渠道营销,全渠道营销有着更多样的数据收集、数据分析能力,更具有连贯性的统筹融合能力,更深入的数据洞察分析力等多项优势,而这些优点都保证了全渠道营销,可以为用户提供其他营销方式无法实现的深入的个性化体验。
|
搜索推荐 Windows
再推荐5款大幅提升工作效率的小工具,免费无广告
今天要给大家推荐5款让人惊艳的黑科技软件,每个都是同类软件中的个中翘楚,请大家给我高调地使用起来,不用替我藏着掖着。
169 0
再推荐5款大幅提升工作效率的小工具,免费无广告
|
传感器 API 定位技术
共码未来 | 助力打造现代、高效、流畅的开发体验
共码未来 | 助力打造现代、高效、流畅的开发体验
167 0
共码未来 | 助力打造现代、高效、流畅的开发体验
|
Web App开发
办公必备的5款极具效率的软件,关键是各个都是免费无广告
办公必备的5款极具效率的软件,关键是各个都是免费无广告
230 0
办公必备的5款极具效率的软件,关键是各个都是免费无广告