Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara mengendalikan sejumlah besar penyimpanan data dan pertanyaan dalam pembangunan PHP

Cara mengendalikan sejumlah besar penyimpanan data dan pertanyaan dalam pembangunan PHP

WBOY
WBOYasal
2023-10-09 12:33:381108semak imbas

Cara mengendalikan sejumlah besar penyimpanan data dan pertanyaan dalam pembangunan PHP

Cara mengendalikan sejumlah besar penyimpanan data dan pertanyaan dalam pembangunan PHP

Dalam pembangunan PHP sebenar, adalah perkara biasa untuk mengendalikan sejumlah besar penyimpanan data dan keperluan pertanyaan. Sama ada laman web media sosial atau platform e-dagang, anda akan menghadapi cabaran untuk menyimpan dan menanyakan sejumlah besar data. Artikel ini akan memperkenalkan beberapa kaedah biasa untuk menangani sejumlah besar penyimpanan data dan pertanyaan, dan memberikan contoh kod khusus.

1. Reka bentuk pangkalan data dan pengoptimuman indeks

Apabila berurusan dengan jumlah storan dan pertanyaan data yang besar, anda perlu memberi perhatian kepada reka bentuk dan pengoptimuman indeks pangkalan data. Reka bentuk pangkalan data harus merancang dengan betul struktur jadual, jenis medan dan hubungan. Pada masa yang sama, mengindeks medan atau keadaan yang kerap ditanya boleh meningkatkan prestasi pertanyaan dengan banyak. Berikut ialah contoh:

CREATE TABLE users (
    id INT(11) NOT NULL AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(50) NOT NULL,
    PRIMARY KEY (id),
    INDEX idx_email (email)
);

Dalam contoh di atas, jadual bernama pengguna dicipta, mengandungi medan id, nama dan e-mel. Medan id ialah kunci utama dan indeks dibuat untuk medan e-mel.

2. Pertanyaan paging

Apabila sejumlah besar data perlu ditanya, pertanyaan paging biasanya diperlukan untuk memastikan kecekapan pertanyaan dan pengalaman pengguna. Berikut ialah contoh kod untuk pertanyaan halaman:

$pageSize = 10;  // 每页显示的记录数
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;  // 当前页码

$start = ($page - 1) * $pageSize;

$sql = "SELECT * FROM users LIMIT {$start}, {$pageSize}";
$result = $conn->query($sql);

while ($row = $result->fetch_assoc()) {
    // 处理每一行数据
}

Dalam contoh di atas, bilangan rekod yang dipaparkan pada setiap halaman $pageSize dan nombor halaman semasa $page ditentukan. Menggunakan pernyataan LIMIT dan pembolehubah $start, anda boleh mendapatkan data yang sepadan berdasarkan nombor halaman semasa.

3. Gunakan cache

Untuk sejumlah besar data yang kerap ditanya, anda boleh mempertimbangkan untuk menggunakan cache untuk meningkatkan kelajuan akses. Teknologi caching biasa termasuk Memcached dan Redis. Berikut ialah contoh kod menggunakan Redis untuk cache pertanyaan pangkalan data:

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

$key = 'users_data';

// 先查看缓存中是否有数据
$data = $redis->get($key);

if (!$data) {
    $sql = "SELECT * FROM users";
    $result = $conn->query($sql);

    $data = serialize($result->fetch_all());

    // 将数据存入缓存,并设置过期时间
    $redis->set($key, $data);
    $redis->expire($key, 3600);  // 缓存1小时
}

$users = unserialize($data);
foreach ($users as $user) {
    // 处理每一行数据
}

Dalam contoh di atas, data pertama kali diperoleh daripada cache Jika tiada data dalam cache, pertanyaan dilakukan daripada pangkalan data dan hasil pertanyaan adalah Simpan dalam cache.

Ringkasnya, memproses sejumlah besar storan data dan pertanyaan boleh meningkatkan kecekapan melalui reka bentuk pangkalan data yang munasabah dan pengoptimuman indeks, pertanyaan halaman dan penggunaan cache. Contoh kod khusus boleh dilaraskan dan dioptimumkan mengikut keperluan sebenar. Saya harap artikel ini boleh membantu untuk menangani sejumlah besar penyimpanan data dan pertanyaan dalam pembangunan PHP.

Atas ialah kandungan terperinci Cara mengendalikan sejumlah besar penyimpanan data dan pertanyaan dalam pembangunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn