耗时的数据库查询应该是没有优化的可能。而且可能会执行很多这种查询,甚至可能需要排队执行这种查询。直接买两台服务器是否最彻底?有现成的解决方案吗?
数据库查询影响网页加载速度我听说有这么回事,如果不会的话欢迎指出来。
1
CEBBCAT 2023-01-11 20:30:55 +08:00 4
建议学习《提问的智慧》。功能是什么样子需要介绍一下。买两台服务器和问题解决之间是什么关系?网友该怎么判……算了,你自己想想吧
一般场景推荐即时返回页面,如果后台程序没完成就提示用户稍后刷新。这个页面只做结果查询作用。 |
2
Red998 2023-01-11 21:12:56 +08:00
不要求实时数据、可以考虑使用缓存+异步处理查询之类的。但这个也只是治标不治本。根本问题还是查询耗时需要优化。
|
3
h0099 2023-01-11 21:26:42 +08:00
建议先`EXPLAIN SELECT ...`https://dev.mysql.com/doc/refman/8.0/en/using-explain.html
|
4
IvanLi127 2023-01-12 01:00:05 +08:00 via Android
直接禁止非可控的方式调用耗时查询就能彻底解决这个问题。加预载,缓存什么的都可以。搞出来了就下一阶段能靠加机子解决了。
|
5
jones2000 2023-01-12 01:30:32 +08:00
升级数据库机器的配置, 内存,CPU ,硬盘等等升级,可以提高速度的。
|
6
em70 2023-01-12 02:02:35 +08:00
先分析一下瓶颈在哪里,硬盘 IO 高,还是 CPU 高,还是内存不够,如果硬件没问题,那就是表设计和 SQL 语句问题,是否创建了合适的索引,是否锁表
|
7
Jooooooooo 2023-01-12 02:09:03 +08:00 5
先问: 网页的加载为什么要依赖数据库呢?
|
8
loading 2023-01-12 07:35:40 +08:00 via Android
用 ajax 方式,不要整个页面一下查完才返回 html
|
9
buyan3303 2023-01-12 08:15:56 +08:00
@Jooooooooo #7 可能是 SELECT * FORM 然后前端一股脑的存了大量数据,显示的时候,显示部分内容 2333
|
10
unt 2023-01-12 08:49:04 +08:00
嗯,没问清楚诶,有点奇怪。 你是想问数据库还是想问前端。问数据的库
|
11
unt 2023-01-12 08:58:53 +08:00
问数据库的话,只要问查询耗时长怎么解决就可以了, 小数据量的话优化代码;大数据量的话优化逻辑+加强硬件+优化代码;
问前端的话,大部分耗时长是后端的问题,和你没关系,本就是异步的,你无非就是加 loading 优化,骨架屏等优化用户体验,其他的基本上可以归结为软件设计有问题。 |
12
bjzhush 2023-01-12 09:27:31 +08:00
有个东西叫索引,还有个东西叫 redis
|
13
Huelse 2023-01-12 09:48:28 +08:00
不知道你说的是网页需要异步加载问题还是单纯的 sql 查询慢问题?
|
14
xuanbg 2023-01-12 09:53:29 +08:00
虽然不理解查询慢为什么不能优化,但异步执行这种基操我想是可以在一定程度帮到 OP 的。
|
15
woshinide300yuan 2023-01-12 12:05:16 +08:00
应该是类似 wordpress 的那种网站,伪静态型的,全部都走数据库查询。所以当文章数多了 /机器性能又垃圾时,一个搜索查询就直接让数据库满载了,导致其他用户的访问,比如打开文章都是卡顿状态。
这种事花钱也解决不了太多问题,查询的方式太拉胯了,只能找人优化,分表。 |
16
darkengine 2023-01-12 12:10:08 +08:00
没做前后端分离,或者是后端渲染的网页吧
|
17
zoharSoul 2023-01-12 13:37:40 +08:00
为什么数据库慢会影响网页加载速度呢....
|
18
hhjswf 2023-01-12 14:03:21 +08:00 via Android 1
“数据库影响页面加载速度”
这是认知是没拉平,用户问页面怎么一直在转圈圈加载这么慢,前端说数据返回慢找后端,后端说数据库查询慢,哦,那就是数据库影响了页面加载速度。 |
19
corcre 2023-01-12 14:08:27 +08:00
还有一种特殊情况, 使用了传说中的 table 布局, 那也确实符合 OP 说的情况...
|
21
h0099 2023-01-15 22:08:20 +08:00 1
|