sql >> Database teknologi >  >> RDS >> Mysql

MySQL sammensat indeks bliver ikke brugt

Kort svar:Du ville være i stand til at bruge indekset mere effektivt her, hvis din nøgle var (kontokode, opkaldsdato) i stedet for (opkaldsdato, kontokode).

Den bedste måde at forstå problemet på er ved at tænke på nøgler med flere kolonner som værende en sammenkædning af de forskellige kolonner. Som et eksempel, hvis kolonne 1 havde værdierne 'A,B,C,D' og kolonne 2 'W,X,Y,Z' ville du konstruere et indeks på 'A-W, B-X, C-Y, D-Z' osv. og sætte alle af dem i et B-træ.

For at lave en intervalforespørgsel skal du finde den første efterfølger af den lave ende af intervallet og gentage, indtil du overskrider det øvre interval. Dette betyder, at du kun effektivt kan bruge indekset til at udføre en rækkeviddeforespørgsel på et suffiks af nøglen.



  1. MySQL> Tabel findes ikke. Men det gør det (eller det burde det)

  2. codeigniter:henter data mellem to datoer i mysql ved hjælp af php

  3. Hvordan kalder man en PROCEDURE i MySQL?

  4. mysql join samme tabel andet resultatsæt