主要观点总结
文章提供了关于百万商品分页查询接口性能优化的9个技巧和建议。包括增加默认条件、减少每页大小、减少join表的数量、优化索引、使用straight_join、数据归档、使用count(*)、从ClickHouse查询和数据库读写分离等。
关键观点总结
关键观点1: 增加默认条件
通过为分页查询接口提供默认条件来缩小数据范围,避免每次都计算所有数据。
关键观点2: 减少每页大小
分页查询接口的每页大小不宜过大,过大的每页大小会影响接口性能。
关键观点3: 减少join表的数量
通过优化sql语句,减少join表的数量,提高分页查询接口的性能。
关键观点4: 优化索引
通过优化索引,提高分页查询接口的性能。建议使用explain关键字查看执行计划,根据实际情况创建或优化索引。
关键观点5: 使用straight_join代替inner join
在某些情况下,使用straight_join代替inner join可以解决MySQL选错索引的问题。
关键观点6: 数据归档
将历史数据归档到历史表中,减少主表的数据量,提高分页查询接口的性能。
关键观点7: 使用count(*)
在使用count统计总记录数时,使用count(*)或count(1)是性能最高的选择。
关键观点8: 从ClickHouse查询
将数据存储到ClickHouse等列式数据库中,提高查询性能。
关键观点9: 数据库读写分离
通过数据库读写分离,将读数据请求和写数据请求分别访问不同的数据库,提高系统的并发能力和查询性能。
文章预览
Boot+Cloud项目学习: macrozheng.com 前言 最近有个小伙伴问了这样一个问题:百万商品分页查询接口,如何保证接口的性能? 这就需要对该分页查询接口做优化了。 这篇文章从9个方面跟大家一起聊聊分页查询接口优化的一些小技巧,希望对你会有所帮助。 1 增加默认条件 对于分页查询接口,如果没有特殊要求,我们可以在输入参数中,给一些默认值。 这样可以缩小数据范围,避免每次都count所有数据的情况。 对于商品查询,这种业务场景,我们可以默认查询当天上架状态的商品列表。 例如: select * from product where edit_date>= '2023-02-20' and edit_date < '2023-02-21' and status=1 如果每天有变更的商品数量不多,通过这两个默认条件,就能过滤掉绝大部分数据,让分页查询接口的性能提升不少。 温馨提醒一下:记得给 时间 和 状态 字段增加一个 联合索引
………………………………