https://assbbs.com/thread-21595.htm
演示站:https://dsgncoll.com/
目前这个主机列表系统已经初具雏形了,上线后频繁出现502/504错误。
首先是VPS,我用了一个475MB内存的机器安装了MySQL8,装完就只剩几十MB了。
之前的502是因为我设置了一个Nginx监控系统,每隔5秒reload,防止出现内存掉线问题,结果反而起了反作用。
现在的504则是PHP本身执行的MySQL查询挤炸了内存,导致VPS瘫痪。
为啥MySQL查询那么占内存,看看这过滤系统就明白了:
[全部产品][排除][黑名单]:https://dsgncoll.com/
[品牌][是][QuadraNet]:https://dsgncoll.com/?brand=QuadraNet
[品牌][是][QuadraNet][或][HostDare]:https://dsgncoll.com/?brand=QuadraNet,HostDare
[品牌][不是][QuadraNet][和][HostDare]:https://dsgncoll.com/?brand!=QuadraNet,HostDare
[供应商][含][QuadraNet]:https://dsgncoll.com/?supply=QuadraNet
[供应商][含][QuadraNet][或][GigeNet]:https://dsgncoll.com/?supply=QuadraNet,GigeNET
[供应商][不含][QuadraNet][和][GigeNet]:https://dsgncoll.com/?supply!=QuadraNet,GigeNET
[品牌][是][HostDare][且][供应商][不含][QuadraNet]:https://dsgncoll.com/?brand=hostdare&supply!=quadranet
绕晕了吧……
以后还会有模糊匹配查询,类似[所在地]是[美国]或[美国-洛杉矶]的查询,消耗的CPU和内存会更多。
如何建立索引和优化是个大头,其实数据全都放进内存也未尝不可。
bug 过滤器很有趣,但这样就不对了: https://dsgncoll.com/?brand=QuadraNet,HostDare&supply!=quadranet