zoukankan      html  css  js  c++  java
  • Spring JDBC FOUND_ROWS 安全吗?

    在很多分页的程序中都这样写:

    SELECT COUNT(*) from `table` WHERE ......;  查出符合条件的记录总数
    SELECT * FROM `table` WHERE ...... limit M,N; 查询当页要显示的数据
    这样的语句可以改成:
    SQL1:SELECT SQL_CALC_FOUND_ROWS * FROM `table` WHERE ......  limit M, N;
    SQL2:SELECT FOUND_ROWS();
    这样只要执行一次较耗时的复杂查询可以同时得到与不带limit同样的记录条数,但是这样的处理我担心是不安全的【猜测,未验证】:
    在连接池的情况下,当SQL1 执行结束后,如果迅速将SQL2中的缓冲值取走,基本是正确的,但是如果此时有其他进程取走这个中间结果,那显然,SQL2查询的结果就不正确。
    所以,方案1比方案2安全?容我有空再验证下。
  • 相关阅读:
    ZOJ 3818 Pretty Poem
    HDU 4597 Play Game
    HDU 4497 GCD and LCM
    CSU 1335 高桥和低桥
    UVA 10791 Minimum Sum LCM
    CSU 1119 Collecting Coins
    CSU 1120 病毒
    UVA 12169 Disgruntled Judge
    HDU 1301 Jungle Roads
    POJ 1258 Agri-Net
  • 原文地址:https://www.cnblogs.com/dogharry/p/5167023.html
Copyright © 2011-2022 走看看