Jawapan: Mengoptimumkan prestasi pertanyaan pangkalan data dalam fungsi PHP adalah penting. Punca: Pertanyaan bertindih yang tidak perlu Indeks tidak sah Sintaks pertanyaan tidak sah Petua pengoptimuman: Gunakan indeks yang dioptimumkan cache Gunakan jenis pertanyaan yang sesuai Hadkan set hasil Gunakan EXPLAIN Gunakan pernyataan yang disediakan
1. Gunakan cache: Simpan hasil pertanyaan yang kerap digunakan dalam cache untuk mengurangkan bilangan perjalanan pergi dan balik ke pangkalan data. Contoh:
$cache = new Cache(); $key = 'results'; if ($cache->has($key)) { $results = $cache->get($key); } else { $results = $db->query('SELECT * FROM users'); $cache->set($key, $results); }
2. Optimumkan indeks: Buat indeks untuk lajur yang kerap ditanya untuk mempercepatkan pengambilan data. Contoh:
$db->query('CREATE INDEX idx_name ON users (name)');
3 Gunakan jenis pertanyaan yang sesuai: Pilih jenis pertanyaan yang paling sesuai, seperti
$db->query('UPDATE users SET name = :name WHERE id = :id', [ ':name' => $name, ':id' => $id ]);
SELECT
、UPDATE
或 DELETE
。示例:$db->query('SELECT * FROM users LIMIT 10 OFFSET 0');
4. 限制结果集:仅获取所需的记录数,减少数据库返回的数据量。示例:
$db->query('EXPLAIN SELECT * FROM users WHERE name LIKE "%John%"');
5. 利用 EXPLAIN:使用 EXPLAIN
Dapatkan hanya bilangan rekod yang diperlukan, mengurangkan jumlah data yang dikembalikan oleh pangkalan data. Contoh: $stmt = $db->prepare('SELECT * FROM users WHERE name = ?');
$stmt->execute([$name]);
EXPLAIN
untuk menganalisis pertanyaan dan mengenal pasti kawasan masalah yang berpotensi. Contoh: <?php // 缓存结果 $cache = new Cache(); $key = 'popular_products'; if ($cache->has($key)) { $products = $cache->get($key); } else { // 使用适当的查询类型 $stmt = $db->prepare('SELECT * FROM products ORDER BY views DESC LIMIT 10'); $stmt->execute(); $products = $stmt->fetchAll(); $cache->set($key, $products); }
Pernyataan yang disediakan menghalang serangan suntikan SQL dan meningkatkan prestasi kerana pertanyaan hanya disusun sekali. Contoh:
rrreee🎜Contoh sebenar🎜🎜Berikut ialah pertanyaan yang dioptimumkan yang menunjukkan penerapan amalan terbaik: 🎜rrreee🎜Dengan mengikuti petua ini, anda boleh meningkatkan prestasi pertanyaan pangkalan data dalam fungsi PHP anda dengan ketara, dengan itu meningkatkan kepantasan keseluruhan aplikasi anda. 🎜Atas ialah kandungan terperinci Bagaimana untuk mengoptimumkan prestasi pertanyaan pangkalan data dalam fungsi PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!