Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memilih Rekod MySQL dengan Cekap mengikut Hari, Mengabaikan Masa?

Bagaimana untuk Memilih Rekod MySQL dengan Cekap mengikut Hari, Mengabaikan Masa?

Mary-Kate Olsen
Lepaskan: 2024-12-06 20:04:13
asal
508 orang telah melayarinya

How to Efficiently Select MySQL Records by Day, Ignoring Time?

Cara Memilih Rekod MySQL Berdasarkan Hari Tanpa Mengambilkira Masa

Apabila bekerja dengan jadual yang mengandungi lajur datetime, selalunya perlu mendapatkan semula rekod untuk hari tertentu, tanpa mengira masa ia berlaku. Walau bagaimanapun, menggunakan perbandingan tarikh yang mudah boleh menjadi tidak cekap dan menghalang penggunaan indeks.

Pendekatan yang salah melibatkan pemilihan rekod yang fungsi tarikh digunakan pada lajur masa tarikh sepadan dengan hari yang dikehendaki, seperti:

SELECT *
FROM tablename
WHERE DATE(columnname) = '2012-12-25'
Salin selepas log masuk

Pertanyaan ini memerlukan MySQL mengira tarikh bagi setiap baris, yang boleh menjadi intensif secara pengiraan dan perlahan untuk set data yang besar. Selain itu, penggunaan pengiraan dalam klausa WHERE menghalang pengoptimuman pertanyaan menggunakan indeks pada lajur datetime.

Sebaliknya, pendekatan yang lebih cekap adalah untuk menentukan julat nilai datetime yang mewakili sepanjang hari , memastikan bahawa ia termasuk permulaan dan akhir tarikh tertentu. Ini dicapai menggunakan klausa BETWEEN:

SELECT *
FROM tablename
WHERE columnname BETWEEN '2012-12-25 00:00:00' AND '2012-12-25 23:59:59'
Salin selepas log masuk

Pertanyaan yang diubah suai ini membolehkan MySQL menggunakan indeks pada lajur datetime, meningkatkan prestasi dengan ketara. Adalah penting untuk ambil perhatian bahawa pendekatan ini memastikan bahawa rekod dari sepanjang hari dipilih, tanpa mengira masa ia berlaku.

Perhatikan bahawa dalam versi terbaru MySQL, adalah disyorkan untuk menggunakan sintaks berikut untuk mengelakkan potensi kekaburan:

SELECT *
FROM tablename
WHERE columnname >= '2012-12-25 00:00:00'
AND columnname < '2012-12-26 00:00:00'
Salin selepas log masuk

Dengan mengikuti garis panduan ini, anda boleh memilih rekod dengan cekap berdasarkan hari tanpa mengambil kira masa dalam MySQL, memastikan pangkalan data yang optimum prestasi.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Rekod MySQL dengan Cekap mengikut Hari, Mengabaikan Masa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan