网站优化思路

1、服务器优化:

对于已经预想到可能会有刚访问量或者大量请求数的网站,要采用nginx负载均衡服务器集群,因为nginx服务器可以很好的处理大流量请求

2、前台优化:

1)gzip压缩静态资源
2)减少DOM操作
3)图片延迟加载(图片分成各个小块分别来加载)

3、对于后台优化主要考虑mysql优化

1)开启慢查询日志,找出执行时间过长的sql语句
2)如果表中数据不经常更新,可以开启查询缓存
3)存储引擎的选择,如果想进行高速读写而没有很高的并发量选择myisam,如果业务流程较为复杂并且会有很高的并发量如电商项目就选择innodb

4)数据表的优化:

1、不能有null类型字段
2、尽可能节约字段值的长度,对于定长的字符串选择char,不定长选择varchar,字节超过255才选择text
索引建立首要条件:数据量较大的表要考虑建立索引(超过300条记录)
3、对于经常作为其他表连接条件的字段和经常出现在where子句中的条件字段要建立索引
4、建立复合索引的两个字段是否经常同时出现在where子句中,如果不是尽量不要使用复合索引
5、频繁更新的表不要建立太多索引,对索引的建立要慎重,因为建立索引会影响插入、更新和删除的效率
6、对于内容特别长的字段,如加密后的密文,如果需要对该字段建立索引,可以考虑建立前缀索引来进行优化
7、对于数据表中数据量特别大的情况下,可以采用分区,其中range(按范围进行分区)方式进行分区最常用,按id范围进行分区可以提高查询效率,按时间范围进行分区在删除某个时间段的内容时也会有更高的效率
8、对于表中有些字段不常用的,可以采用垂直分表分离出来,一是降低耦合度,二是减少查询消耗
9、范式的优化,一般情况下数据表的建立要遵循三范式,但有时候也需要逆三范式,比如商品相册表中要存在一个记录着该相册下总的浏览记录,而图片表中也存在一个浏览记录的字段,这种情况下在获取商品相册的总浏览数时就不需要连表统计了

5)sql语句的分析和优化:

首先可以通过explain分析sql语句的执行情况,连了哪些表、用到了哪些索引,还可以通过show

profiles查看sql语句精确的执行时间
1、group子句的优化,因为group会自动排序,而因此加上order by null
2、limit子句的优化,在偏移量较大的情况下效率很低,可以用where子句来代替limit的偏移量
3、where条件字段必须是独立的一列,不然无法使用索引 4、对于or运算,参与运算的字段必须都存在索引
5、复合索引,where条件字段中必须存在复合索引的主索引字段 6、like查询必须遵循左原则,左边不能有%
7、尽量不要使用select
8、范围性的条件字段放在最后
9、where条件中避免使用!=、<>、is null、is not null、in、not in这样的运算,必要的时候可以用between代替in
10、当where条件中存在and和or运算混用时,虽然每个字段都存在索引但基本上用不到索引的,这时可以考虑用union查询,把or和and运算分开查询然后合并结果集
11、如果确定你查询的结果不会重复,那么union all比union要更快,因为不用去重 12、插入多条数据时拼成一条sql语句更快

4、当mysql已经优化完毕,可以考虑缓存优化,如内存缓存(memcache、redis),文件缓存(ob函数实现页面静态化)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值