Saya mempunyai pertanyaan yang melakukan perkara berikut:
AND TIME(NOW() + INTERVAL li.tzOffset HOUR - INTERVAL li.dst HOUR) BETWEEN '08:00:00' AND '20:00:00'
Masalahnya ialah prestasinya tidak begitu baik, tetapi saya tidak tahu jika ada cara untuk meningkatkan prestasinya. Tiada indeks pada tzOffset atau dst. Adakah pengindeksan mereka membantu?
Saya sedang menjalankan MySQL 5.6, tetapi jangkakan saya mungkin akan menaik taraf kepada 5.7 dalam masa satu atau dua minggu. Jika MySQL 8.0 mempunyai ciri yang boleh mempercepatkan pertanyaan, adalah baik untuk mengetahui tentang perkara itu supaya saya boleh mewajarkan menghabiskan masa melihat isu itu.
Lihat Boleh dicari
Apa yang lebih teruk ialah anda pada dasarnya telah
Jika ada cara untuk menggabungkan
li.tzOffset - li.dst
ke dalam satu lajur maka anda boleh melakukan iniYang mungkin boleh digunakan melibatkan
new_column
的INDEX
Saya rasa lajur penjanaan indeks telah ditambahkan dalam 5.7. Jika tiada "lajur terhasil" anda perlu menambah lajur baharu dan mengira perbezaan di dalamnya.