Gå til innhold

Anbefalte innlegg

Hei,

 

Har en mysql spørring som jeg helst hadde sett at hadde gått fortere, den dukker opp forholdsvis ofte i slow logen.

 

mysql> SELECT count(*) as n FROM tbl_mail WHERE (not (mailid in (select mailid from tbl_mailtocompany))) AND (isnull(deleted) or deleted = 0) ORDER BY messagedate DESC;

 

Følgende får man fra en describe:

----------------+
| id | select_type        | table             | type        | possible_keys
                 | key     | key_len | ref                  | rows  | Extra
               |
+----+--------------------+-------------------+-------------+-------------------
------------------+---------+---------+----------------------+-------+----------
----------------+
|  1 | PRIMARY            | tbl_mail          | ref_or_null | deleted,deleted_2
                 | deleted | 2       | const                | 32395 | Using whe
re              |
|  2 | DEPENDENT SUBQUERY | tbl_mailtocompany | ref         | PRIMARY,MailId,mai
liden,myindexname | MailId  | 8       | tbl_mail.MailId |     1 | Using whe
re; Using index |

 

Er det noen med smarte hoder som har forslag på hvordan man kan optimalisere denne spørringen?

Endret av tZar
Lenke til kommentar
Videoannonse
Annonse

Join vil gi et ganske så stort recordset, har testet litt med det, og det virker ikke som at det er den helt store forskjellen i ytelsen.

 

Tror jeg satser på å heller oppdatere et felt i tbl_mail med om den finns i tbl_mailtocompany eller ikke, slik at jeg omgår hele problemstillingen.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...