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

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

WBOY
Freigeben: 2016-06-06 20:06:11
Original
1244 Leute haben es durchsucht

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

<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>
Nach dem Login kopieren
Nach dem Login kopieren

回复内容:

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

<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>
Nach dem Login kopieren
Nach dem Login kopieren

为什么不用 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>
Nach dem Login kopieren

希望对你有帮助

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage