老站长实战:discuz数据库清理踩坑与提速指南
十年前瞎捣鼓搭的Discuz论坛,去年差点把我服务器整崩了。换了高配主机,清了缓存,换了域名解析,打开后台还是要等半分钟。查来查去才发现,数据库快30G了。核心的用户、帖子数据加起来不到2G,剩下28G全是没人要的垃圾。哪些垃圾在偷偷占你的discuz数据库空间
搜索缓存与会话垃圾,这绝对是占空间大头。很多老站默认开了站内搜索,用户搜过每一个关键词,生成的索引全存在pre_searchindex里,几年不清理,轻松涨个七八G太正常。还有那个pre_common_session会话表,存的是当前在线用户的登录信息,要是你没开自动清理,几年下来攒好几G都是它,太常见了。
删不干净的内容垃圾,删帖扔回收站,转头就忘,对吧?用户自己删了帖子,附件记录还留在附件表里,广告号发了几万条广告,你封了号没删帖,这些全都是占空间的主。我上次清出来十几万条无效附件记录,直接占了快5G,离谱。
废弃插件遗留的烂摊子,Discuz生态老了,十几年前插件一堆,你装了试用不好用就删了,大多数插件卸载的时候根本不会删掉自己建的表。我之前装过一个顶贴涨粉插件,不用了之后,那个插件的记录表悄咪咪涨了6G多,要不是我查表大小,根本发现不了。
https://obgeo.oss-cn-beijing.aliyuncs.com/pvc-articles/50f5b6d5-1405-46a2-8b81-ac110f127f75.jpg
phpmyadmin查看discuz数据库各表容量
清理时千万别踩的几个致命坑
我第一次清理的时候,毛手毛脚,差点把整个站干没了,给你们提个醒。
第一个坑,手滑删核心表。新手喜欢直接在phpmyadmin里操作,看到大表就想删,有人把pre_common_member用户表当缓存表清了,那直接全站用户都没了,找谁说理去?不是所有大表都是垃圾,搞清楚每个表是干啥的再动手。
第二个坑,乱用不知名的一键清理插件。我当初图省事,在某个资源站下了个十年不更的清理插件,点了一键清理之后,全站帖子回复计数全错了,首页显示100条回复,点进去只有12条,我对着数据库一条条修了整整两天,头发掉了一把。
第三个坑,不备份直接动手。这是我踩过最深的坑,第一次清的时候,觉得不就是删点垃圾,能出啥问题?结果写错了sql语句,误删了半个月的新帖,找都找不回来,亏死。
对了,备份别只存在服务器上,一定要导一份放本地或者云盘,真出问题能救你命。
https://obgeo.oss-cn-beijing.aliyuncs.com/pvc-articles/65023891-988a-415f-88ea-0abfe6f5c840.jpg
discuz数据库本地备份操作界面
亲测靠谱的分步清理流程
https://obgeo.oss-cn-beijing.aliyuncs.com/pvc-articles/e00a6413-6615-4d57-968f-8b9030de5795.jpg
亲测靠谱的分步清理流程
走通这个流程,哪怕你是刚玩Discuz的新手,也不会出大问题。
第一步,备份完再碰数据库。一定要做异地备份,别嫌麻烦,这步省十分钟,出问题哭十个小时都没用。
第二步,先清后台能清的垃圾。Discuz本身自带清理工具,你进后台找「工具」板块,先清一遍系统缓存,再清理掉回收站的过期内容,统计垃圾也能在后台清掉一大半,别上来就瞎改数据库。
第三步,手动清理大垃圾表。给你们列几个可以放心清的大表,都是我清过无数次的:
1. pre_common_session:本来就是临时存在线用户信息的,直接清空,啥影响都没有;
2. pre_searchindex:如果你没开站内全文搜索,直接清空,开了搜索的话,清空之后重新生成一次索引,比原来的旧索引小不止一倍;
3. pre_common_click:存帖子点击统计的,几年不清能涨到好几G,清空之后系统会重新统计,不影响原有数据;
4. 废弃插件表:看表名带pre_plugin_前缀,你确定这个插件早就不用了,直接删表就行,没啥后遗症。
第四步,清孤立数据。什么叫孤立数据?就是帖子早就删了,附件还留在附件表里,回复删了,统计记录还留着,这些用几句现成的sql就能清干净,老站长都把sql整理好了,去Discuz官方论坛搜一下就能找到,别自己瞎写语句,容易出问题。
第五步,全部清完之后,选所有表做一次表优化,删了数据不优化,空间不会释放,等于白忙活,phpmyadmin里选所有表,点「优化表」等个几分钟就完事。
说实话,我上次清完,原来29G的数据库,直接缩到1.8G,服务器负载直接从百分之八十掉到百分之十,后台打开秒开,前台加载速度快了不止三倍,我当时都不敢信。
不过话说回来,清理完不是一劳永逸,流量大的站半年清一次,小站一年清一次就行,把垃圾清出去,不光服务器跑得爽,还能省不少空间费用,要是你用的是按容量收费的云数据库,那直接就是省真金白银。
很多老Discuz站本来流量就不多,每个月还因为臃肿数据库多花不少服务器钱,清一次管大半年,香得很。 看完楼主的分享感觉很有收获,感谢这么用心的整理,学到很多新知识。 内容全面又细致,几乎把相关问题都覆盖到了,非常用心。 看完之后深有感触,有些话真的说到心坎里了,很有共鸣。 楼主分析得很到位,很多地方都很实用,已经默默收藏起来慢慢看。 内容干货满满,没有多余废话,对有需要的人来说帮助真的很大。 没想到还有这么多细节,之前一直没注意到,感谢楼主提醒和科普。 每一段都很有分量,认真读完全篇感觉整个人都提升了不少。 很多细节都考虑到了,看得出来是真正懂行的人在认真分享。 很多建议都很接地气,能直接用在生活或工作中,实用性很强。 帖子内容很扎实,不浮夸不炒作,真正有用的信息都在里面。 看完很有启发,也引发了我不少思考,有空也想分享下自己的看法。
页:
[1]