Optimize delete_expired_imap_messages()

For me this reduced query time from 0.3 s to 0.05 s.
This commit is contained in:
link2xt
2022-01-30 23:00:00 +00:00
parent 99ddce6c3e
commit cccdc51ad4
2 changed files with 11 additions and 6 deletions

View File

@@ -1,5 +1,11 @@
# Changelog # Changelog
## Unreleased
### Changes
- optimize `delete_expired_imap_messages()` #3047
## 1.74.0 ## 1.74.0
### Fixes ### Fixes

View File

@@ -451,10 +451,9 @@ pub(crate) async fn delete_expired_imap_messages(context: &Context) -> Result<()
.execute( .execute(
"UPDATE imap "UPDATE imap
SET target='' SET target=''
WHERE EXISTS ( WHERE rfc724_mid IN (
SELECT * FROM msgs SELECT rfc724_mid FROM msgs
WHERE rfc724_mid=imap.rfc724_mid WHERE ((download_state = 0 AND timestamp < ?) OR
AND ((download_state = 0 AND timestamp < ?) OR
(download_state != 0 AND timestamp < ?) OR (download_state != 0 AND timestamp < ?) OR
(ephemeral_timestamp != 0 AND ephemeral_timestamp <= ?)) (ephemeral_timestamp != 0 AND ephemeral_timestamp <= ?))
)", )",