页面需要用到总的条数 需要在这个页面一直展示 那么这个代码这样写可以吗 每次刷新页面都要去数据库里面查询一次吗 是不是影响性能呢?如果数据库有几万条数据怎么办?
<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>页面需要用到总的条数 需要在这个页面一直展示 那么这个代码这样写可以吗 每次刷新页面都要去数据库里面查询一次吗 是不是影响性能呢?如果数据库有几万条数据怎么办?
<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>
为什么不用 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>希望对你有帮助
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号