Dalam pengaturcaraan PHP, pertanyaan pangkalan data adalah bahagian penting, dan prestasi pertanyaan ialah titik pengoptimuman utama. Satu arah dalam pengoptimuman ialah cache hasil pertanyaan untuk mengelakkan pertanyaan berulang. Artikel ini akan memperkenalkan kaedah praktikal untuk pengoptimuman cache pertanyaan pangkalan data.
1. Prinsip Caching
Hasil pertanyaan cache adalah berdasarkan prinsip kebolehubahan data, iaitu hasil pertanyaan yang sama tidak akan berubah sebelum data berubah. Oleh itu, pertanyaan hanya perlu dilaksanakan sekali, dan pertanyaan seterusnya boleh dibaca dari cache. Pelaksanaan caching adalah untuk menyimpan hasil pertanyaan dalam ingatan dan kemudian menanyakannya dengan caching pasangan nilai kunci. Dalam pelaksanaan cache, masa, kapasiti dan mekanisme kemas kini cache storan cache perlu dipertimbangkan.
2. Pelaksanaan Cache
Memcached ialah kaedah penyimpanan cache biasa yang boleh digunakan dalam pelbagai bahasa pengaturcaraan dan web pelayan. Dalam PHP, caching hasil pertanyaan boleh dilaksanakan dengan mudah melalui sambungan Memcached Berikut ialah kod contoh mudah:
$cache = new Memcached(); $cache->addServer('localhost', 11211); $key = md5('SELECT * FROM `table`'); $result = $cache->get($key); if ($result === false) { $result = // 执行查询操作 $cache->set($key, $result, 3600); // 缓存有效期1小时 } // 使用查询结果
Redis ialah satu lagi cache A biasa. kaedah storan dengan lebih banyak struktur dan fungsi data, seperti struktur storan, transaksi dan kegigihan. Dalam PHP, caching hasil pertanyaan boleh dilaksanakan dengan mudah melalui sambungan Redis Berikut ialah kod contoh mudah:
$redis = new Redis(); $redis->connect('localhost', 6379); $key = md5('SELECT * FROM `table`'); $result = $redis->get($key); if ($result === false) { $result = // 执行查询操作 $redis->set($key, $result); $redis->expire($key, 3600); // 缓存有效期1小时 } // 使用查询结果
3 Amalan caching
Atas ialah kandungan terperinci Amalan pengoptimuman cache pertanyaan pangkalan data dalam pengaturcaraan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!