您现在的位置是:主页 > news > 鞍山做网站比较好的公司/网站页面优化方案
鞍山做网站比较好的公司/网站页面优化方案
admin2025/5/23 13:25:10【news】
简介鞍山做网站比较好的公司,网站页面优化方案,成功卡耐基网站建设,浙江省住房和城建建设厅网站我在做贴吧系统的时候,每次访问页面都要请求一次权限。所以,这个请求权限的请求, 访问概率会非常高,不可能每次都去数据库里查,怎么办呢? 我想了个简单的方案:在应用程序里面开了个很大的内存&a…
鞍山做网站比较好的公司,网站页面优化方案,成功卡耐基网站建设,浙江省住房和城建建设厅网站我在做贴吧系统的时候,每次访问页面都要请求一次权限。所以,这个请求权限的请求, 访问概率会非常高,不可能每次都去数据库里查,怎么办呢? 我想了个简单的方案:在应用程序里面开了个很大的内存&a…
我在做贴吧系统的时候,每次访问页面都要请求一次权限。所以,这个请求权限的请求, 访问概率会非常高,不可能每次都去数据库里查,怎么办呢?
我想了个简单的方案:在应用程序里面开了个很大的内存,启动的时候就把整张表全部 load 到内存里去。这样再有权限请求的时候,直接从内存里取就行了。 数据库重启时,我的进程也会跟着重启,接下来就会到数据表里面做全表扫描,把整个用户相关信息全部塞到内存里面去。 但是,后来我遇到了一个很郁闷的情况。有时候 MySQL 崩溃了,我的程序重新加载权限 到内存里,结果这个 select 语句要执行 30 分钟左右。本来 MySQL 正常重启一下是很快的,进程重启也很快,正常加载权限的过程只需要两分钟就跑完了。但是,为什么异常重启的时候就要 30 分钟呢
我没辙了,只好去看源码。然后,我发现 MySQL 有个机制,当它觉得系统空闲时会尽量 去刷脏页。 具体到我们的例子里MySQL 重启以后,会执行我的进程做全表扫描,但是因为这个时 候权限数据还没有初始化完成,我的 Server 层不可能提供服务,于是MySQL 里面就只有我那一个 select 全表扫描的请求,MySQL 就认为现在很闲,开始拼命地刷脏页,结果就吃掉了大量的磁盘资源,导致我的全表扫描也跑得很慢。 知道了这个机制以后,我就写了个脚本,每隔 0.5 秒发一个请求,执行一个简单的 SQL 查
询,告诉数据库其实我现在很忙,脏页刷得慢一点。脚本一发布使用,脏页果然刷得慢了,加载权限的扫描也跑得很快了。