Mencipta Indeks pada Bahagian Tarikh Medan DATETIME dalam MySQL
Mencari rekod berdasarkan julat tarikh tertentu boleh menjadi prestasi kesesakan, terutamanya untuk meja besar. Dalam MySQL, penyelesaian yang paling berkesan untuk masalah ini ialah mencipta indeks pada bahagian tarikh medan DATETIME.
Sebagai contoh, pertimbangkan jadual senarai transaksi dengan lajur TranDateTime yang menyimpan cap waktu setiap transaksi. Mendapatkan semula rekod untuk tarikh tertentu menggunakan pertanyaan SELECT * FROM transactionlist WHERE date(TranDateTime) = '2008-08-17' boleh menjadi lambat disebabkan oleh imbasan jadual.
Untuk meningkatkan prestasi, MySQL mengoptimumkan pertanyaan dengan menggunakan indeks pada medan TranDateTime. Walau bagaimanapun, indeks ini digunakan pada keseluruhan lajur, yang boleh menjadi tidak cekap untuk carian julat tarikh.
Penyelesaian terletak pada mencipta indeks pada bahagian tarikh lajur TranDateTime. Ini boleh dicapai menggunakan operator BETWEEN dalam pertanyaan:
SELECT * FROM transactionlist WHERE TranDateTime BETWEEN '2008-08-17' AND '2008-08-17 23:59:59.999999';
Dengan menentukan julat tarikh secara langsung dalam pertanyaan, MySQL boleh menggunakan indeks dengan cekap pada bahagian tarikh lajur TranDateTime untuk mendapatkan semula rekod yang diingini . Pendekatan ini mengelakkan keperluan untuk imbasan jadual, meningkatkan prestasi pertanyaan dengan ketara.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mempercepatkan Carian Julat Tarikh dalam Medan DATETIME MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!