Gunakan DAYOFWEEK dalam kueri Anda, seperti:
SELECT * FROM mytable WHERE MONTH(event_date) = 5 AND DAYOFWEEK(event_date) = 7;
Ini akan menemukan semua info untuk hari Sabtu di bulan Mei.
Untuk mendapatkan pembacaan tercepat simpan bidang yang didenormalisasi yaitu hari dalam seminggu (dan apa pun yang Anda butuhkan). Dengan begitu Anda dapat mengindeks kolom dan menghindari pemindaian tabel penuh.
Coba saja di atas terlebih dahulu untuk melihat apakah itu sesuai dengan kebutuhan Anda dan jika tidak, tambahkan beberapa kolom tambahan dan simpan data saat menulis. Perhatikan saja anomali pembaruan (pastikan Anda memperbarui kolom hari_minggu jika Anda mengubah tanggal_acara).
Perhatikan bahwa bidang yang didenormalisasi akan menambah waktu yang diperlukan untuk melakukan penulisan, meningkatkan perhitungan saat menulis, dan menggunakan lebih banyak ruang. Pastikan Anda benar-benar membutuhkan manfaat dan dapat mengukur bahwa itu membantu Anda.