Mencipta Indeks pada Bahagian Tarikh Medan DATETIME dalam MySQL
Untuk mencipta indeks pada bahagian tarikh medan DATETIME, anda boleh menggunakan sintaks berikut:
CREATE INDEX idx_date ON table_name(DATE(date_field));
Sebagai contoh, untuk mencipta indeks pada medan TranDateTime dalam jadual senarai transaksi, anda akan melaksanakan pertanyaan berikut:
CREATE INDEX idx_date ON transactionlist(DATE(TranDateTime));
Setelah anda mencipta indeks, anda boleh menggunakannya untuk mempercepatkan pertanyaan yang menapis pada bahagian tarikh medan. Sebagai contoh, pertanyaan berikut akan menggunakan indeks idx_date untuk mencari dengan cepat semua transaksi yang berlaku pada 17-08-2008:
SELECT * FROM transactionlist WHERE DATE(TranDateTime) = '2008-08-17';
Mengelakkan Fungsi DATE() dalam Pertanyaan Indeks
Adalah penting untuk ambil perhatian bahawa menggunakan fungsi DATE() dalam pertanyaan indeks boleh memintas indeks dan menghasilkan imbasan jadual penuh. Ini kerana MySQL tidak boleh mengoptimumkan pertanyaan yang menggunakan fungsi untuk mengubah suai lajur diindeks.
Sebaliknya, anda harus menggunakan pertanyaan julat untuk menentukan julat tarikh yang anda ingin cari. Sebagai contoh, pertanyaan berikut akan menggunakan indeks idx_date untuk mencari dengan cepat semua transaksi yang berlaku antara 2008-08-17 dan 2008-08-17 23:59:59.999999:
SELECT * FROM transactionlist WHERE TranDateTime BETWEEN '2008-08-17' AND '2008-08-17 23:59:59.999999';
Atas ialah kandungan terperinci Bagaimana untuk Mengindeks Bahagian Tarikh Medan DATETIME dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!