mysql分页场景下SQL_CALC_FOUND_ROWS代替count(*)

mysql分页场景下SQL_CALC_FOUND_ROWS代替count(*),第1张

语法:

第二个SELECT语句返回一个数字,该数字指示如果不使用LIMIT语句写入第一个SELECT将会返回多少行。

如果您使用的是 SELECT SQL_CALC_FOUND_ROWS ,MySQL 必须计算整个结果集中有多少行。但是,这比不使用LIMIT再次运行查询要快,因为不需要将结果集发送到 Client 端。

中文——mysql5.7官方文档

在mysql8.0版本的官方文档中,不推荐使用 SQL_CALC_FOUND_ROWS 选项,并计划在后续版本中废弃。

mysql8.0文档

注意:

mysql会为当前连接保存这个值,各个连接的SQL_CALC_FOUND_ROWS结果互不影响

两条sql语句可以简化成一条sql语句,看似简单了,实则不然。

原因:

来源—— SQL_CALC_FOUND_ROWS的用法

哪个最快?SELECT SQL_CALC_FOUND_ROWS FROM table ,或 SELECT COUNT(*)

原因:

mysql 驱动版本与mysql不一致造成的:

将 6.0.2 版本换成 5.1.27 即可

如果还是乱码:就在链接后面加上 characterEncoding=UTF-8


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8547701.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-17
下一篇2023-04-17

发表评论

登录后才能评论

评论列表(0条)

    保存