Mengindeks Nilai Tarikh untuk Prestasi Carian Yang Dipertingkatkan
Isu yang dihadapi adalah berkaitan dengan mengoptimumkan carian jadual berdasarkan komponen tarikh medan DATETIME dalam MySQL. Jadual yang diberikan, "senarai transaksi," mempunyai lebih sejuta rekod dan membuat pertanyaan khusus untuk satu tarikh, seperti "2008-08-17," menggunakan pertanyaan "SELECT * FROM transactionlist where date(TranDateTime) = '2008-08 -17'", mengalami kelewatan yang ketara.
Untuk menangani kesesakan prestasi ini, pertimbangkan untuk membuat indeks pada bahagian tarikh "TranDateTime." Pengindeksan ialah teknik pangkalan data yang menyusun data secara berstruktur, menjadikannya lebih mudah dan pantas untuk mencari maklumat tertentu dalam jadual. Dengan mengindeks bahagian tarikh "TranDateTime," MySQL boleh memintas keperluan untuk melakukan imbasan jadual penuh, menghasilkan prestasi pertanyaan yang dipertingkatkan dengan ketara.
Untuk mencipta indeks pada bahagian tarikh "TranDateTime," laksanakan arahan berikut:
CREATE INDEX idx_date ON transactionlist (DATE(TranDateTime));
Setelah indeks ini dibuat, pertanyaan yang digunakan untuk mengambil semua transaksi pada tarikh tertentu boleh ditulis semula sebagai:
SELECT * FROM transactionlist WHERE DATE(TranDateTime) = '2008-08-17';
Dengan menggunakan indeks pada "DATE (TranDateTime)," MySQL boleh mengakses terus baris yang berkaitan tanpa mengimbas keseluruhan jadual, yang membawa kepada pengurangan yang ketara dalam masa pertanyaan.
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Mengoptimumkan Pertanyaan MySQL pada Nilai Tarikh untuk Prestasi Carian yang Dipertingkatkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!