cari

Rumah  >  Soal Jawab  >  teks badan

Optimumkan pertanyaan untuk menambah kandungan pada masa semasa di WHERE

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粉218775965P粉218775965258 hari yang lalu447

membalas semua(1)saya akan balas

  • P粉561438407

    P粉5614384072024-04-05 15:52:08

    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.

    balas
    0
  • Batalbalas