Home >Backend Development >PHP Tutorial >海量数据且更新频繁的列表该怎么优化

海量数据且更新频繁的列表该怎么优化

WBOY
WBOYOriginal
2016-06-13 10:45:171695browse

海量数据且更新频繁的列表该如何优化?
现在网站数据特别多,而且更新频繁,这样的站内容列表页面该如何优化?目前我们是生成了静态,可数据越来越多,这样每次生成消耗的时间会很可怕。有谁知道那些大网站的列表是如何处理的吗?跪求方案。。。。

------解决方案--------------------
竟然是大网站就要做一些大网站的做法.比如硬件上的跟进等等
更新频繁的东西就不适合做静态了,为什么更新频繁的东西要做静态呢?
如果是构架问题那就得考虑重新构架才行

如何优化可以引入memcache等 多台服务器共享数据的方式来处理。
或者动态的读取变动的部分内容.
------解决方案--------------------
由于更新频繁,所以列表页只需更换最近的几页就可以了
比如每页50条,那么原来的第1页在新增50条后就变成第2页了,并且内容与原先的第一页一样

另外需要注意一个事实:极少有人会沿着分页条翻页10次以上。而多使用搜索功能
------解决方案--------------------
更新频繁不适合在用静态了。前一分钟刚生成了 下一分钟就又来更新,那不是。。。
------解决方案--------------------

探讨

更新频繁不适合在用静态了。前一分钟刚生成了 下一分钟就又来更新,那不是。。。

------解决方案--------------------
统计到底哪些地方人查的地多,例如电子商品前一百个,可以把这一百个生成个静态页,多用用户搜索功能,避免导致用户无效又浪费的操作,数据库要是查的慢,除了算法语句、索引等优化,还可把数据进行分表等,例如,把火爆的电子商品从商品里提出来,可以缓解部分压力,大网站架构才是核心
------解决方案--------------------
那还是得看他的频繁更新到底是有多频繁才行。使用缓存技术是必须的.方法有很多种,构架可能需要重新设计...
一旦涉及到大流量高并发的时候都需要硬件上不断的跟进.没有实际的环境,也都只能泛泛的给你扯一扯了..
------解决方案--------------------
探讨

那还是得看他的频繁更新到底是有多频繁才行。使用缓存技术是必须的.方法有很多种,构架可能需要重新设计...
一旦涉及到大流量高并发的时候都需要硬件上不断的跟进.没有实际的环境,也都只能泛泛的给你扯一扯了..

------解决方案--------------------
我是进来学习的

实在不行换数据库?
------解决方案--------------------
这个得学习一下。
------解决方案--------------------
探讨

引用:

由于更新频繁,所以列表页只需更换最近的几页就可以了
比如每页50条,那么原来的第1页在新增50条后就变成第2页了,并且内容与原先的第一页一样

另外需要注意一个事实:极少有人会沿着分页条翻页10次以上。而多使用搜索功能

更新每天有几百的样子,唠叨老大,按你说的,后续的页面采用动态?

------解决方案--------------------
探讨

引用:

由于更新频繁,所以列表页只需更换最近的几页就可以了
比如每页50条,那么原来的第1页在新增50条后就变成第2页了,并且内容与原先的第一页一样

另外需要注意一个事实:极少有人会沿着分页条翻页10次以上。而多使用搜索功能

更新每天有几百的样子,唠叨老大,按你说的,后续的页面采用动态?

------解决方案--------------------
静态又不是万能的……根本就不应该静态,关键的地方不同的缓存措施即可

为了所谓的降低压力,这个措施居然成了压力,不搞笑?
------解决方案--------------------
採用單頁用戶訪問触发的方式来产生静态就好了,这么做的好处是后台生成单页更新,对于不常常访问的页面不会因为频繁做无谓的生成浪费资源,而常常访问的页面会被频繁更新生成,原理是:
假如某页面上次产生静态的时间是11点,当12点的时候有用户访问,那么只需要通过调用js的方式触发一下重新生成该页面就好了,当下一个访客访问的时候实际上看到的就是12点更新的页面了,这样每次更新的只有一页而已,不会占用太久的时间,而且js触发后台生成也不会影响到前台的访问.
如果你担心访客太多频繁更新的话,可以用php获取这个需要更新的页面上次的更新时间,如果更新时间距现在的时间小于半个小时则忽略更新,如果超过了半个小时,那么就重新生成新的静态页就好了.

我以前做的一个大型门户网站就是用这个方式来做自动更新的,完全不需要后台人工生成,不但不浪费人力而且效果也很棒.
------解决方案--------------------
探讨

静态又不是万能的……根本就不应该静态,关键的地方不同的缓存措施即可

为了所谓的降低压力,这个措施居然成了压力,不搞笑?

------解决方案--------------------
定时服务,自动生成页面,然后push过去就好啦
------解决方案--------------------
探讨
引用:

更新频繁不适合在用静态了。前一分钟刚生成了 下一分钟就又来更新,那不是。。。

不然!
假设每分钟有 100 人访问
生成一个静态页面只要操作一次
而动态需要操作100次

况且,更新列表页只是在有数据提交时才做的

------解决方案--------------------
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn