Home > Backend Development > PHP Tutorial > 这个每次刷新都要去数据库里面查询一遍吗?

这个每次刷新都要去数据库里面查询一遍吗?

WBOY
Release: 2016-06-06 20:06:11
Original
1246 people have browsed it

页面需要用到总的条数 需要在这个页面一直展示 那么这个代码这样写可以吗 每次刷新页面都要去数据库里面查询一次吗 是不是影响性能呢?如果数据库有几万条数据怎么办?

<code>$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");
         $stmt=$pdo->prepare("select * from table1");
         $stmt->execute();
         $res=$stmt->fetchall(PDO::FETCH_ASSOC);
         echo count($res);</code>
Copy after login
Copy after login

回复内容:

页面需要用到总的条数 需要在这个页面一直展示 那么这个代码这样写可以吗 每次刷新页面都要去数据库里面查询一次吗 是不是影响性能呢?如果数据库有几万条数据怎么办?

<code>$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");
         $stmt=$pdo->prepare("select * from table1");
         $stmt->execute();
         $res=$stmt->fetchall(PDO::FETCH_ASSOC);
         echo count($res);</code>
Copy after login
Copy after login

为什么不用 select count(*) from table

$stmt=$pdo->prepare("select count(*) as num from table");
$stmt->execute();
$res=$stmt->fetch(PDO::FETCH_ASSOC);
return $res['num']

访问峰值的时候有点占内存了,可以考虑在insert语句和del语句的时候,把数据统计出来放在别的地方

你这么写肯定是每次都连接,你可以单独吧PDO封装一个类,实用单例模式进行处理,就避免了每次执行CURD的时候都要尽兴连接操作了。我很早之前写过的例子:

<code><?php /**
 * Description: PDO数据库操作
 * Author: yangxiangming@live.com
 * Date: 2014/7/29
 * Time: 13:35
 */
class core_libs_safepdo {
    
    /**
     * description 定义私有静态变量
     */
    private static $safepdo;
    
    /**
     * description 构造函数
     */
    private function __construct() {
    }
    
    /**
     * description 实例化调用PDO链接数据库
     */
    private function pdolink() {
        try {
            self::$safepdo = new PDO ( BASE_TYPE . ':host=' . BASE_HOST . ';dbname=' . BASE_NAME, BASE_USER, BASE_PASS, array (
                    PDO::ATTR_PERSISTENT => TRUE,
                    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8' 
            ) );
            return self::$safepdo;
        } catch ( Exception $e ) {
            throw $e;
        }
    }
    
    /**
     * description 覆盖__clone()方法,禁止克隆
     */
    private function __clone() {
    }
    
    /**
     * description 单例模式,实例化调用数据库链接
     */
    public static function calldb() {
        if (self::$safepdo == null) {
            self::$safepdo = self::pdolink ();
        }
        return self::$safepdo;
    }
}</code>
Copy after login

希望对你有帮助

Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template