求助 版主:论坛审计组
我的网站有57万篇文章数据量比较大内容伪静态之后用后台的更新
类型:迅睿CMS 更新时间:2020-01-03 07:23:46 文章 更新内容URL

我的网站有57万篇文章,数据量比较大,内容伪静态之后,用后台的更新内容URL 速度不够快,每秒都要请求刷新,连接有时候就断开,然后又从头开始。

image.png


本质上,url是数据库一个字段,比如我是news模块,那么url就是:

/index.php?s=news&c=show&id=1

/index.php?s=news&c=show&id=2

/index.php?s=news&c=show&id=……


我直接用SQL语句替换成

/news/show/1.html

/news/show/1.html

/news/show/1.html

57万条数据几秒钟换好了,前台访问一切正常。

我想,这个功能代码改成运行SQL行不行。


//批量更新模块内容url SQL语句


批量替换:

update mi_1_news set url=REPLACE(url,'/index.php?s=news&c=show&id=','/news/show/')


添加后缀:

UPDATE `mi_1_news` AS u SET u.url = CONCAT( u.`url`, ".html");


防止之前已经替换的多了后缀:

update mi_1_news set url=REPLACE(url,'.html.html','.html')


本人菜鸟,和大佬们讨论。


回帖
  • 六月珄
    #1楼    六月珄
    2019-09-09 15:06:36
    Chrome 0
    我最多也就几千条数据,售后说超过10万数据要订数据优化套餐
  • zhuroufanzi
    #2楼    zhuroufanzi
    2019-09-09 23:38:17
    Chrome 0
    我有个虚幻的想法,如果能二开,如此大批量一键更新能否分段执行,避免系统或服务器承受不住。比如每次更新500条。第一次指定更新id 0-499,第二次指定更新500-999,第三次1000-1499,以此类推。依次更新的效果是叠加的。又或者像xunrui系统静态生成那样,按照指定日期来执行。。。最终也能实现分段实现的目的
  • laosan
    #3楼    laosan
    2019-09-10 11:36:20
    Chrome 0
    你这么大数据量,除了生成速度不快,访问速度怎么样,CPU占用高么
  • qzai
    #4楼    qzai
    2019-09-10 14:07:31
    Chrome 0
    laosan我要特别赞一下迅睿CMS的负载能力,得益于先进架构和设计,数据量虽然大,网站前后台打开速度、服务器占用都和初装时差不多。
  • qzai
    #5楼    qzai
    2019-09-10 14:13:37
    Chrome 0
    zhuroufanzi六月珄数据库建立索引、分表操作、主从分离,都是好办法。目前我觉得迅睿CMS的性能足够用了。迅睿的独立模块其实和子站差不多。自由度很高。
  • 125762285
    #6楼    125762285
    2019-12-09 23:44:31
    小米手机 0
    值得讨论
  • 唉呦喂
    #7楼    唉呦喂
    2019-12-10 15:11:13
    Chrome 0
    57万条数据不算多
  • 唉呦喂
    #8楼    唉呦喂
    2019-12-10 15:12:58
    Chrome 0
    不对啊,伪静态只设置路由就可以了啊,不用每条替换吧,你说的是生成纯静态html吧
  • wzwlqq
    #9楼    wzwlqq
    2020-01-03 07:23:46
    Chrome 0
    50w 静态生成的时候服务器负载高不高