Rumah > Soal Jawab > teks badan
Pertanyaan berikut menyebabkan penggunaan CPU yang besar dan kependaman yang tinggi dalam persekitaran pangkalan data saya. Saya cuba menggunakan pelbagai jenis indeks untuk meningkatkan prestasi pertanyaan, tetapi malangnya mana-mana indeks tidak membantu meningkatkan prestasi. Adakah terdapat sebarang cadangan untuk menulis semula pertanyaan untuk mendapatkan hasil yang sama.
query SELECT kln.qsw, kln.mngy FROM ( SELECT kln2.mngy, MAX(kln2.nonUnixjdjf) dm_hj FROM mfh.view_mats kln2 WHERE kln2.jdjf <= '2022-10-19 10:47:25.000000' GROUP BY kln2.mngy ) pun_ghky JOIN pun_ghky.mngy = kln.mngy);
P粉6100288412024-01-11 14:18:51
Indeks ini berpasangan view_mats
有益:INDEX(mngy, nonUnixjdjf)
。也就是说,对于 trip_dsty
:INDEX(mngy, jdjf)
.
dan (mungkin) keluarkan idx_n1
kerana ia hanya mengandungi permulaan indeks itu.
(Saya tidak sepenuhnya mahir dalam kedai lajur; nasihat di atas adalah untuk indeks InnoDB; ia mungkin terpakai di sini.)
Secara umum, (m,n)
是无用的,并且可能导致舍入错误。 double(20,10)
可能应该是普通的 double
或 DECIMAL(20,10)
pada Float dan Double.
LIMIT 10000
- Adakah anda benar-benar menghantar baris sebanyak itu kepada pelanggan? Menyodok terlalu banyak juga merupakan isu prestasi.