//連接Redis
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
//判斷緩存是否存在
if ($redis->exists('data_cache')) {
$data = $redis->get('data_cache');
} else {
//從數據庫中獲取數據
$data = $db->query('SELECT * FROM table');
//將數據存儲到緩存中
$redis->set('data_cache', serialize($data));
}
//使用數據
foreach ($data as $row) {
//處理數據
}
使用索引:为高频查询字段添加索引。
内连接优化:减少冗余数据查询。
合并请求:通过 IN 查询实现多条记录同时读取。
示例代码对比了不推荐与推荐的查询方式:
//多次查詢(不推薦)
foreach ($ids as $id) {
$row = $db->query('SELECT * FROM table WHERE id = '.$id);
//處理數據
}
//批量查詢(推薦)
$ids = implode(',', $ids);
$rows = $db->query('SELECT * FROM table WHERE id IN ('.$ids.')');
foreach ($rows as $row) {
//處理數據
}
function load_css(){
$css_file = 'style.css';
$cache_file = md5($css_file).'.css';
//判斷緩存是否存在
if(file_exists($cache_file)){
include $cache_file;
} else {
ob_start();
include $css_file;
$content = ob_get_clean();
//壓縮CSS
$content = compress_css($content);
//保存緩存文件
file_put_contents($cache_file, $content);
//輸出內容
echo $content;
}
}
关闭数据库连接
避免循环引用对象
//及時釋放資源
$db->close();
//避免循環引用
class A {
public $b;
}
class B {
public $a;
}
$a = new A();
$b = new B();
$a->b = $b;
$b->a = $a;