Rumah > Artikel > pangkalan data > Bagaimana untuk Mengoptimumkan Pertanyaan Tarikh dalam MySQL Menggunakan Indeks DATETIME?
Mengoptimumkan Pertanyaan Tarikh dengan MySQL DATETIME Index
Apabila bekerja dengan medan DATETIME dalam MySQL, adalah penting untuk mengoptimumkan pertanyaan yang melibatkan penapisan tarikh. Untuk meningkatkan prestasi pertanyaan yang membuat pertanyaan sebahagian daripada lajur DATETIME, pertimbangkan untuk menggunakan indeks khusus.
Katakanlah anda mempunyai jadual bernama transactionlist dengan sejumlah besar rekod dan lajur DATETIME yang dipanggil TranDateTime. Anda menghadapi masalah prestasi semasa menjalankan pertanyaan seperti:
SELECT * FROM transactionlist WHERE date(TranDateTime) = '2008-08-17'
Sebab Pertanyaan Lambat:
MySQL menggunakan imbasan jadual keseluruhan untuk melaksanakan pertanyaan ini kerana lajur dihantar melalui fungsi date(). Pengoptimum pertanyaan tidak boleh menjangka hasil fungsi dan, oleh itu, memintas mana-mana indeks.
Penyelesaian: Mencipta Indeks Tarikh
Untuk mengelakkan imbasan jadual dan meningkatkan prestasi pertanyaan , buat indeks yang merangkumi bahagian tarikh lajur TranDateTime. Anda boleh melakukan ini dengan arahan berikut:
CREATE INDEX idx_TranDateTime_date ON transactionlist (date(TranDateTime));
Contoh Pertanyaan dengan Indeks Tarikh:
Selepas mencipta indeks, pertanyaan anda akan menggunakannya dan berjalan dengan lebih pantas :
SELECT * FROM transactionlist WHERE date(TranDateTime) BETWEEN '2008-08-17' AND '2008-08-17 23:59:59.999999';
Nota:
Apabila menggunakan operator BETWEEN, pastikan anda menentukan penghujung hari dengan komponen masa untuk menangkap semua transaksi dalam tempoh yang dikehendaki julat tarikh.
Atas ialah kandungan terperinci Bagaimana untuk Mengoptimumkan Pertanyaan Tarikh dalam MySQL Menggunakan Indeks DATETIME?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!