如何防止大量耗时的数据库查询影响网页加载速度?

2023-01-11 20:07:11 +08:00
 shendaowu

耗时的数据库查询应该是没有优化的可能。而且可能会执行很多这种查询,甚至可能需要排队执行这种查询。直接买两台服务器是否最彻底?有现成的解决方案吗?

数据库查询影响网页加载速度我听说有这么回事,如果不会的话欢迎指出来。

3880 次点击
所在节点    MySQL
21 条回复
CEBBCAT
2023-01-11 20:30:55 +08:00
建议学习《提问的智慧》。功能是什么样子需要介绍一下。买两台服务器和问题解决之间是什么关系?网友该怎么判……算了,你自己想想吧

一般场景推荐即时返回页面,如果后台程序没完成就提示用户稍后刷新。这个页面只做结果查询作用。
Red998
2023-01-11 21:12:56 +08:00
不要求实时数据、可以考虑使用缓存+异步处理查询之类的。但这个也只是治标不治本。根本问题还是查询耗时需要优化。
h0099
2023-01-11 21:26:42 +08:00
IvanLi127
2023-01-12 01:00:05 +08:00
直接禁止非可控的方式调用耗时查询就能彻底解决这个问题。加预载,缓存什么的都可以。搞出来了就下一阶段能靠加机子解决了。
jones2000
2023-01-12 01:30:32 +08:00
升级数据库机器的配置, 内存,CPU ,硬盘等等升级,可以提高速度的。
em70
2023-01-12 02:02:35 +08:00
先分析一下瓶颈在哪里,硬盘 IO 高,还是 CPU 高,还是内存不够,如果硬件没问题,那就是表设计和 SQL 语句问题,是否创建了合适的索引,是否锁表
Jooooooooo
2023-01-12 02:09:03 +08:00
先问: 网页的加载为什么要依赖数据库呢?
loading
2023-01-12 07:35:40 +08:00
用 ajax 方式,不要整个页面一下查完才返回 html
buyan3303
2023-01-12 08:15:56 +08:00
@Jooooooooo #7 可能是 SELECT * FORM 然后前端一股脑的存了大量数据,显示的时候,显示部分内容 2333
unt
2023-01-12 08:49:04 +08:00
嗯,没问清楚诶,有点奇怪。 你是想问数据库还是想问前端。问数据的库
unt
2023-01-12 08:58:53 +08:00
问数据库的话,只要问查询耗时长怎么解决就可以了, 小数据量的话优化代码;大数据量的话优化逻辑+加强硬件+优化代码;

问前端的话,大部分耗时长是后端的问题,和你没关系,本就是异步的,你无非就是加 loading 优化,骨架屏等优化用户体验,其他的基本上可以归结为软件设计有问题。
bjzhush
2023-01-12 09:27:31 +08:00
有个东西叫索引,还有个东西叫 redis
Huelse
2023-01-12 09:48:28 +08:00
不知道你说的是网页需要异步加载问题还是单纯的 sql 查询慢问题?
xuanbg
2023-01-12 09:53:29 +08:00
虽然不理解查询慢为什么不能优化,但异步执行这种基操我想是可以在一定程度帮到 OP 的。
woshinide300yuan
2023-01-12 12:05:16 +08:00
应该是类似 wordpress 的那种网站,伪静态型的,全部都走数据库查询。所以当文章数多了 /机器性能又垃圾时,一个搜索查询就直接让数据库满载了,导致其他用户的访问,比如打开文章都是卡顿状态。
这种事花钱也解决不了太多问题,查询的方式太拉胯了,只能找人优化,分表。
darkengine
2023-01-12 12:10:08 +08:00
没做前后端分离,或者是后端渲染的网页吧
zoharSoul
2023-01-12 13:37:40 +08:00
为什么数据库慢会影响网页加载速度呢....
hhjswf
2023-01-12 14:03:21 +08:00
“数据库影响页面加载速度”
这是认知是没拉平,用户问页面怎么一直在转圈圈加载这么慢,前端说数据返回慢找后端,后端说数据库查询慢,哦,那就是数据库影响了页面加载速度。
corcre
2023-01-12 14:08:27 +08:00
还有一种特殊情况, 使用了传说中的 table 布局, 那也确实符合 OP 说的情况...
lizhenda
2023-01-13 09:28:10 +08:00
@hhjswf 经典场景

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/908246

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX