Optimumkan pertanyaan untuk menambah kandungan pada masa semasa di WHERE
P粉218775965
P粉218775965 2024-04-04 22:45:06
0
1
453

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.

P粉218775965
P粉218775965

membalas semua(1)
P粉561438407

Lihat Boleh dicari

Apa yang lebih teruk ialah anda pada dasarnya telah

WHERE function(variable1, variable2) BETWEEN ...

Jika ada cara untuk menggabungkan li.tzOffset - li.dst ke dalam satu lajur maka anda boleh melakukan ini

WHERE new_column BETWEEN ...

Yang mungkin boleh digunakan melibatkan new_columnINDEX

Saya rasa lajur penjanaan indeks telah ditambahkan dalam 5.7. Jika tiada "lajur terhasil" anda perlu menambah lajur baharu dan mengira perbezaan di dalamnya.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan