平台开发中,欢迎参与测试。你可以在 QQ群:1046115671 中与我们交流,或是直接在社区发帖。(PS:翻译平台暂不可用,如需参与翻译请仍前往 wp-china.org )

    只需执行一次主查询的分页实现

    • 孙锡源
      楼主

      这次又是我孤陋寡闻了。

      优化WooCommerce的慢查询的时候发现他的查询语句带了SQL_CALC_FOUND_ROWS关键字,好陌生。

      详细了解后发现是个神器。

      以往做分页基本要写以下两条SQL:

      SELECT COUNT(*) from [table] WHERE  ......;
      SELECT * FROM [table]  WHERE ...... limit M,N;

      这将执行两次主查询,而使用SQL_CALC_FOUND_ROWS之后则可以这样写:

      SELECT SQL_CALC_FOUND_ROWS * FROM [table] WHERE ......  limit M, N;
      SELECT FOUND_ROWS();

      虽然SQL语句也是两条,但是在第一条查询执行后会将行数保存下来,第二条SQL相当于直接取数值,这样就比之前的方案快非常多。

      标签: 

      #20146
  • 不凡
    参与者

    这是用WooCommerce插件可以用到的吗?

  • 正在查看 1 条回复
    • 哎呀,回复话题必需登录。