❤Nodejs 第八章(操作本地数据库优化查询为分页查询方式)

简介: 【4月更文挑战第8天】在Node.js中,本章讲述了如何优化本地数据库查询以实现分页。首先,添加了前端分页参数`pageNum`(页码)和`pageSize`(每页条数)。接着,通过打印`req.query`来验证参数是否正确传递。初始查询示例为`SELECT * FROM user WHERE age = 18 LIMIT 0, 10`。当改变分页参数时,查询能相应更新。在实现动态偏移量`offset`时,起初因误添加`' AND' : ' WHERE'`导致错误,修正后使用`LIMIT`和计算出的`offset`进行分页。

❤Nodejs 第八章(操作本地数据库优化查询为分页查询方式)

1、优化分页查询接口

之前我们的接口并没有进行分页的参数设置,接下来我们设置一下查询接口的分页

分页参数设置(前端的参数)

pageNum: 1 //页码数(也就是当前是多少页)
pageSize:10 //页条数(也就是当前页是多少条)

我们可以先打印出来看看我们查询蚕食,这边我们可以看到前台传过来的查询参数里面加了 pageNum: '1', pageSize: '10' }的参数,我们把这个参数打印如下图:

console.log(req.query,'req.query');

image.png

先看看我们的数据库查询语句是否正确

SELECT * FROM user WHERE age = 18 LIMIT 0, 10 

image.png

2、拼接上我们的参数

当我们pageNum:1 pageSize10 的时候返回数据如图

image.png

修改查询的分页为2,这个时候发现页码已经更改为2 了,查询无误

image.png

3、offset偏移量参数

这里需要注意的就是这个offset参数
offset是偏移量,通过计算偏移量 (pageNum - 1) * pageSize 来动态生成偏移量,然后将 age、name、偏移量和每页的行数作为参数传递给 SQL 查询的 LIMIT 子句和 WHERE 子句。

我们将查询语句放进去尽心查询,这个时候报错了,查询语句如下:

if (pageNum !== undefined&&pageSize !== ''&&pageSize !== null) {
    query += params.length ? ' AND' : ' WHERE';
    query += ' LIMIT ?, ?';
    let offset = (pageNum - 1) * pageSize;
    params.push(offset);

    params.push(parseInt(pageSize));
  }

查询语句之中我们多加了' AND' : ' WHERE',排查修改以后我们更改我们的分页查询方式:

const { name, age,sex,pageNum,pageSize } = req.query;
if (pageNum !== undefined&&pageSize !== ''&&pageSize !== null) {
    query += ' LIMIT ?, ?';
    let offset = (pageNum - 1) * pageSize;
    params.push(offset);
    params.push(10);
  }

查询无误!

这个时候我将pageSize也给添加的时候发现错误

这个时候一直报错提示我`You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''10'' at line 1",
sqlState: '42000',
index: 0,
sql: "SELECT * FROM user LIMIT 0, '10'"
}`

大致意思就是因为我的数据类型为字符串,转化方式有以下三种,我选择了parseInt 方式

parseInt  
parseFloat
Number

image.png

ok更改以后查询无误!

image.png

目录
相关文章
|
13天前
|
存储 NoSQL 分布式数据库
微服务架构下的数据库设计与优化策略####
本文深入探讨了在微服务架构下,如何进行高效的数据库设计与优化,以确保系统的可扩展性、低延迟与高并发处理能力。不同于传统单一数据库模式,微服务架构要求更细粒度的服务划分,这对数据库设计提出了新的挑战。本文将从数据库分片、复制、事务管理及性能调优等方面阐述最佳实践,旨在为开发者提供一套系统性的解决方案框架。 ####
|
14天前
|
存储 SQL 数据库
深入浅出后端开发之数据库优化实战
【10月更文挑战第35天】在软件开发的世界里,数据库性能直接关系到应用的响应速度和用户体验。本文将带你了解如何通过合理的索引设计、查询优化以及恰当的数据存储策略来提升数据库性能。我们将一起探索这些技巧背后的原理,并通过实际案例感受优化带来的显著效果。
31 4
|
15天前
|
SQL druid 数据库
如何进行数据库连接池的参数优化?
数据库连接池参数优化包括:1) 确定合适的初始连接数,考虑数据库规模和应用需求;2) 调整最大连接数,依据并发量和资源状况;3) 设置最小空闲连接数,平衡资源利用和响应速度;4) 优化连接超时时间,确保系统响应和资源利用合理;5) 配置连接有效性检测,定期检查连接状态;6) 调整空闲连接回收时间,适应访问模式并配合数据库超时设置。
|
18天前
|
JSON 监控 JavaScript
Node.js-API 限流与日志优化
Node.js-API 限流与日志优化
|
20天前
|
SQL 缓存 监控
数据库优化
【10月更文挑战第29天】数据库优化
29 1
|
20天前
|
存储 缓存 固态存储
怎么让数据库查询更快
【10月更文挑战第28天】
25 2
|
22天前
|
存储 缓存 关系型数据库
怎么让数据库查询更快
【10月更文挑战第25天】通过以上综合的方法,可以有效地提高数据库查询的速度,提升应用程序的性能和响应速度。但在优化过程中,需要根据具体的数据库系统、应用场景和数据特点进行合理的调整和测试,以找到最适合的优化方案。
|
20天前
|
缓存 关系型数据库 MySQL
如何优化 MySQL 数据库的性能?
【10月更文挑战第28天】
43 1
|
22天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
105 1
|
22天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
52 0
下一篇
无影云桌面