1. 数据库层主要查询建索引
一个是全表扫描,一个是常量时间。通过explain 查询语句就知道了。
2. 通过memcached分布式缓存减少数据库或者磁盘文件IO
原则是把数据缓存到离使用者最近的地方
3. 写操作也可以缓存,如果不要求实时更新到数据库的话。比如把某个页面的点击次数存储到数据库中的话,并不要求每点击一次就写一次数据库,可以积累到10次或者100次的时候再做一次更新。这对用户体验影响不大。(只要不直接读数据库这条记录,也就是要通过缓存的接口取值)
4. Web站点重定向实现的负载均衡Load Balance
镜像站点通过Http Redirect 302 和 Location header头镜像到各个子站点(用户所在地区的镜像,CDN?)通过重定向到子站点,可以很大程度扩充主Web站点的吞吐量(reqeust/second)
选择子站点有两种方式:
a. Round Robin,顺序选择。可以实现绝对的均衡,但需要记住最后一次分配的站点,代价比较高,需要考虑并发互斥存储该变量。
b. 随机选择,hash当前时间,hash IP都是不错的选择。
5. DNS实现的负载均衡
同一个域名配多个IP(注意DNS配置中的A记录和CNAME记录)
本文介绍了五种提高Web性能的方法:数据库查询优化利用索引减少全表扫描;使用memcached进行分布式缓存以减轻数据库IO负担;写操作缓存以降低数据库更新频率;通过重定向实现负载均衡;以及利用DNS配置进行智能流量分配。
1万+

被折叠的 条评论
为什么被折叠?



