python项目使用sqlalchemy的order_by方法报错‘Out of sort memory‘的解决方案

news2024/11/12 18:32:56

查询逻辑代码:

from sqlalchemy import Table

from common.database import db_connect
from app.config.config import config
from app.settings import env
from model.user import User

db_session,Base,engine = db_connect()
class Article(Base):
    __table__ = Table("article", Base.metadata, autoload_with=engine)
#     查询出所有文章,但是不要草稿
    def find_article(self,page,article_type="recommend"):
        #     一页显示多少内容呢,我们默认为一个10,page默认应该是从1开始
        if int(page) < 1:
            page = 1
        count = int(page) * config[env].page_count
        # 这就证明是来到了推荐的分类下边
        if article_type == "recommend":
            result = db_session.query(Article,User.nickname).join(
                User,User.user_id==Article.user_id
            ).filter(
                Article.drafted==1
            ).order_by(
                Article.browse_num.desc()
            ).limit(count).all()
        else:
            result = db_session.query(Article,User.nickname).join(
                User, User.user_id == Article.user_id
            ).filter(
                Article.label_name == article_type,
                Article.drafted==1
            ).order_by(
                Article.browse_num.desc()
            ).limit(count).all()
        return result

经过排查是使用sqlalchemy的order_by方法那一处开始出现问题的

查看控制台信息, python项目中使用报错如下:

ERROR:app.app:Exception on / [GET] Traceback (most recent call last): File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\sqlalchemy\engine\base.py", line 1967, in _exec_single_context self.dialect.do_execute( File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\sqlalchemy\engine\default.py", line 941, in do_execute cursor.execute(statement, parameters) File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\cursors.py", line 153, in execute result = self._query(query) ^^^^^^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\cursors.py", line 322, in _query conn.query(q) File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\connections.py", line 563, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\connections.py", line 825, in _read_query_result result.read() File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\connections.py", line 1206, in read self._read_result_packet(first_packet) File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\connections.py", line 1283, in _read_result_packet self._read_rowdata_packet() File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\connections.py", line 1330, in _read_rowdata_packet packet = self.connection._read_packet() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\connections.py", line 775, in _read_packet packet.raise_for_error() File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\protocol.py", line 219, in raise_for_error err.raise_mysql_exception(self._data) File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\err.py", line 150, in raise_mysql_exception raise errorclass(errno, errval) pymysql.err.OperationalError: (1038, 'Out of sort memory, consider increasing server sort buffer size') The above exception was the direct cause of the following exception: Traceback (most recent call last): File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\flask\app.py", line 1473, in wsgi_app response = self.full_dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\flask\app.py", line 882, in full_dispatch_request rv = self.handle_user_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\flask\app.py", line 880, in full_dispatch_request rv = self.dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\flask\app.py", line 865, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject\controller\index.py", line 22, in home db_result = article.find_article(page, article_type) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject\model\article.py", line 27, in find_article ).limit(count).all() ^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\sqlalchemy\orm\query.py", line 2673, in all return self._iter().all() # type: ignore ^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\sqlalchemy\orm\query.py", line 2827, in _iter result: Union[ScalarResult[_T], Result[_T]] = self.session.execute( ^^^^^^^^^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\sqlalchemy\orm\session.py", line 2362, in execute return self._execute_internal( ^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\sqlalchemy\orm\session.py", line 2247, in _execute_internal result: Result[Any] = compile_state_cls.orm_execute_statement( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\sqlalchemy\orm\context.py", line 305, in orm_execute_statement result = conn.execute( ^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\sqlalchemy\engine\base.py", line 1418, in execute return meth( ^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\sqlalchemy\sql\elements.py", line 515, in _execute_on_connection return connection._execute_clauseelement( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\sqlalchemy\engine\base.py", line 1640, in _execute_clauseelement ret = self._execute_context( ^^^^^^^^^^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\sqlalchemy\engine\base.py", line 1846, in _execute_context return self._exec_single_context( ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\sqlalchemy\engine\base.py", line 1986, in _exec_single_context self._handle_dbapi_exception( File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\sqlalchemy\engine\base.py", line 2355, in _handle_dbapi_exception raise sqlalchemy_exception.with_traceback(exc_info[2]) from e File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\sqlalchemy\engine\base.py", line 1967, in _exec_single_context self.dialect.do_execute( File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\sqlalchemy\engine\default.py", line 941, in do_execute cursor.execute(statement, parameters) File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\cursors.py", line 153, in execute result = self._query(query) ^^^^^^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\cursors.py", line 322, in _query conn.query(q) File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\connections.py", line 563, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\connections.py", line 825, in _read_query_result result.read() File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\connections.py", line 1206, in read self._read_result_packet(first_packet) File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\connections.py", line 1283, in _read_result_packet self._read_rowdata_packet() File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\connections.py", line 1330, in _read_rowdata_packet packet = self.connection._read_packet() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\connections.py", line 775, in _read_packet packet.raise_for_error() File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\protocol.py", line 219, in raise_for_error err.raise_mysql_exception(self._data) File "D:\pythonprojects\python-code\flaskProject.venv\Lib\site-packages\pymysql\err.py", line 150, in raise_mysql_exception raise errorclass(errno, errval) sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1038, 'Out of sort memory, consider increasing server sort buffer size') [SQL: SELECT article.id AS article_id, article.label_name AS article_label_name, article.article_image AS article_article_image, article.title AS article_title, article.article_content AS article_article_content, article.article_tag AS article_article_tag, article.user_id AS article_user_id, article.browse_num AS article_browse_num, article.drafted AS article_drafted, article.article_type AS article_article_type, article.create_time AS article_create_time, user.nickname AS user_nickname FROM article INNER JOIN user ON user.user_id = article.user_id WHERE article.drafted = %(drafted_1)s ORDER BY article.browse_num LIMIT %(param_1)s] [parameters: {'drafted_1': 1, 'param_1': 10}]

提取重要信息:

pymysql.err.OperationalError: (1038, 'Out of sort memory, consider increasing server sort buffer size')。这个错误表明 MySQL 在执行排序操作时内存不足,导致查询失败。

所以调大一下linux的内存

再重启项目查看效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2237013.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

group_concat配置影响程序出bug

在 ThinkPHP 5 中&#xff0c;想要临时修改 MySQL 数据库的 group_concat_max_len 参数&#xff0c;可以使用 原生 SQL 执行 来修改该值。你可以通过 Db 类来执行 SQL 语句&#xff0c;从而修改会话&#xff08;Session&#xff09;级别的变量。 步骤 设置 group_concat_max_l…

云专线优势有哪些?对接入网络有什么要求?

云专线是一种连接企业本地数据中心与云服务提供商之间的专用网络连接方式&#xff0c;具有以下优势&#xff1a; 高安全性&#xff1a;云专线提供了物理隔离的数据传输通道&#xff0c;减少了数据在公共互联网上传输时可能遭遇的安全风险。 低延迟&#xff1a;由于是直接连接&a…

【提高篇】3.1 GPIO(二,结构与工作模式介绍)

目录 一,GPIO的基本结构 1.1 保护二极管 1.2 上拉、下拉电阻 1.3 施密特触发器 1.4 P-MOS 管和 N-MOS 管 P-MOS管和N-MOS管的区别 1.5 片上外设 1.6 IDR,ODR,BSRR寄存器 1.6.1 IDR(Input Data Register) 1.6.2 ODR(Output Data Register) 1.6.3 BSRR(Bit Se…

数据迁移: 安全高效转移数据, 满足企业业务需求和技术改进

天津鸿萌科贸发展有限公司从事数据安全服务二十余年&#xff0c;致力于为各领域客户提供专业的数据存储、数据恢复、数据备份、数据迁移等解决方案与服务&#xff0c;并针对企业面临的数据安全风险&#xff0c;提供专业的相关数据安全培训。 鸿萌数据迁移业务为众多企业顺利高效…

Am I Isolated:一款安全态势基准测试工具

基于Rust的容器运行时扫描器作为一个容器运行&#xff0c;检测用户容器运行时隔离中的漏洞。 它还提供指导&#xff0c;帮助用户改善运行时环境&#xff0c;以提供更强的隔离保证。 容器的现状是它们并不包含&#xff08;隔离&#xff09;。 容器隔离的缺失在云原生环境中有…

战略共赢 软硬兼备|云途半导体与知从科技达成战略合作

2024年11月5日&#xff0c;江苏云途半导体有限公司&#xff08;以下简称“云途”或“云途半导体”&#xff09;与上海知从科技有限公司&#xff08;以下简称“知从科技”&#xff09;达成战略合作&#xff0c;共同推动智能汽车领域高端汽车电子应用的开发。 云途半导体与知从科…

基于卷积神经网络的农作物病虫害识别系统(pytorch框架,python源码)

更多图像分类、图像识别、目标检测等项目可从主页查看 功能演示&#xff1a; 基于卷积神经网络的农作物病虫害检测&#xff08;pytorch框架&#xff09;_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于卷积神经网络的农作物病虫害识别系统是在pytorch框架下实现的…

2-149 基于matlab的LDPC译码性能分析

基于matlab的LDPC译码性能分析&#xff0c;LDPC&#xff08;Low-Density Parity-Check&#xff09;码作为编码技术&#xff0c;具有优秀的纠错性能和较低的编解码复杂度。为保证可靠的数据传输&#xff0c;对传输过程中可能出现的信道噪声、干扰等进行模拟和分析。分析对比了误…

算法每日双题精讲——双指针(快乐数,盛最多水的容器)

&#x1f31f;快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 &#x1f31f; 别再犹豫了&#xff01;快来订阅我们的算法每日双题精讲专栏&#xff0c;一起踏上算法学习的精彩之旅吧&#xff01;&#x1f4aa;…

在Scrapy爬虫中应用Crawlera进行反爬虫策略

在互联网时代&#xff0c;数据成为了企业竞争的关键资源。然而&#xff0c;许多网站为了保护自身数据&#xff0c;会采取各种反爬虫技术来阻止爬虫的访问。Scrapy作为一个强大的爬虫框架&#xff0c;虽然能够高效地抓取网页数据&#xff0c;但在面对复杂的反爬虫机制时&#xf…

Linux(CentOS)安装 JDK

CentOS版本&#xff1a;CentOS 7 JDK版本&#xff1a;JDK17 1、下载 JDK 官网&#xff1a;https://www.oracle.com/ 2、上传 JDK 文件到 CentOS 使用FinalShell远程登录工具&#xff0c;并且使用 root 用户连接登录&#xff08;注意这里说的root用户连接登录是指这样的&…

redis和数据库的数据一致性

在我们使用redis作为缓存的时候&#xff0c;数据库和缓存数据保持一致性就显得尤为重要&#xff0c;因为如果不做处理的话很有可能读取到的数据会出现差错&#xff0c;那这里怎么进行解决呢&#xff1f; 首先我们先来看一下操作数据到底是直接删除数据还是说通过修改的方式来修…

发布 VectorTraits v3.0(支持 X86架构的Avx512系列指令集,支持 Wasm架构及PackedSimd指令集等)

文章目录 支持 X86架构的Avx512系列指令集支持Avx512时的输出信息 支持 Wasm架构及PackedSimd指令集支持PackedSimd时的输出信息VectorTraits.Benchmarks.Wasm 使用说明 新增了向量方法支持 .NET 8.0 新增的向量方法提供交织与解交织的向量方法YGroup3Unzip的范例代码 提供重新…

工业相机常用功能之白平衡及C++代码分享

目录 1、白平衡的概念解析 2、相机白平衡参数及操作 2.1 相机白平衡参数 2.2 自动白平衡操作 2.3 手动白平衡操作流程 3、C++ 代码从XML读取参数及设置相机参数 3.1 读取XML 3.2 C++代码,从XML读取参数 3.3 给相机设置参数 1、白平衡的概念解析 白平衡(White Balance)…

推荐一款SSD硬盘优化器:Auslogics SSD Optimizer Pro

SSD Optimizer Pro 是一款专为优化固态硬盘 (SSD) 性能而设计的专业工具&#xff0c;旨在最大化 SSD 的效率&#xff0c;延长硬盘使用寿命。凭借简便的操作界面和强大的优化功能&#xff0c;SSD Optimizer Pro 可以让用户充分利用 SSD 的优势&#xff0c;从而获得更高的系统性能…

常用机器人算法原理介绍

一、引言 随着科技的不断发展&#xff0c;机器人技术在各个领域得到了广泛应用。机器人算法是机器人实现各种功能的核心&#xff0c;它决定了机器人的行为和性能。本文将介绍几种常用的机器人算法原理&#xff0c;包括路径规划算法、定位算法和运动控制算法。 二、路径规划算法…

基于开源 AI 智能名片 S2B2C 商城小程序的视频号交易小程序优化研究

摘要&#xff1a;本文探讨了完善适配视频号交易小程序的重要意义&#xff0c;重点阐述了开源 AI 智能名片 S2B2C 商城小程序在这一过程中的应用。通过分析其与直播间和社群的无缝衔接特点&#xff0c;以及满足新流量结构下基础设施需求的能力&#xff0c;为门店在视频号直播交易…

【OH】openHarmony开发环境搭建(基于windows子系统WSL)

前言 本文主要介绍基于windows子系统WSL搭建openHarmony开发环境。 WSL与Vmware虚拟机的区别&#xff0c;可以查看WSL与虚拟机的区别 更详细的安装配置过程可参考微软官网&#xff1a; ​安装 WSL 前提 以下基于windows 111专业版进行配置&#xff0c;windows 10应该也是可以…

WPF使用Prism框架首页界面

1. 首先确保已经下载了NuGet包MaterialDesignThemes 2.我们通过包的项目URL可以跳转到Github上查看源码 3.找到首页所在的代码位置 4.将代码复制下来&#xff0c;删除掉自己不需要的东西&#xff0c;最终如下 <materialDesign:DialogHostDialogTheme"Inherit"Ide…

AHB Matrix 四星级 验证笔记(2.4) Tt3.3AHB总线协议测试时的 并行数据

文章目录 前言一、代码二、错误1.地址范围2. 并行执行线程中变量覆盖的情况3.有关incr的beat 前言 来源路科验证本节搞定 T3.3 AHB总线协议的覆盖&#xff1a;AHB_PROTOCOL_COVER 即测试ahb slave接口和master接口支持&#xff08;尽可能&#xff09;全部的ahb协议传输场景&am…