bleagh2017 2017-03-16 02:59 采纳率: 0%
浏览 1722

mysql里 使用sql_calc_found_rows 配合 found_rows() 的问题

因为表格数据量10w左右 如果查询两次时间较长 所以在做分页的时候想查询一次得到结果和总条数
按照sql_calc_found_rows +found_rows()的写法 可以完成 就是想问一下这个函数会不会因为同时访问而返回错误的数据?
比如 a页面数据共100条 b页面200条 甲刷新a页面 乙刷新b页面 a页面显示的条数会不会被乙的动作影响?

  • 写回答

1条回答 默认 最新

  • 不良使 Python领域潜力新星 2023-06-06 21:03
    关注

    SQL_CALC_FOUND_ROWSFOUND_ROWS() 函数是 MySQL 数据库中按需计算行数的一种方法,它们应该是线程安全的。

    在您的情况下,如果您同时进行多个查询并使用 FOUND_ROWS() 函数,MySQL 应该可以正确地区分这些查询并返回准确的最近查询的行数。这意味着,如果在查询 a 页面时使用 SQL_CALC_FOUND_ROWS,而在查询 b 页面时再次使用 SQL_CALC_FOUND_ROWS,MySQL 应该能够正确区分这两个查询并返回正确的结果。

    另外,SQL_CALC_FOUND_ROWSFOUND_ROWS() 函数是用于在单个 SQL 查询中获取结果总数的,因此,通过使用这些函数,您可以在单个查询中轻松获取所需的数据和总行数,而不需要单独进行第二次查询。

    总的来说,SQL_CALC_FOUND_ROWSFOUND_ROWS() 函数是一种非常好的按需计算行数的方法,它们是线程安全的,可以支持并发数据访问,同时也可以提高您的查询性能。

    评论

报告相同问题?

悬赏问题

  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题