sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur bestäms Bitmap Heap Scan och Index Scan?

Hur många rader har du totalt i tabellen? Beslutet baseras på hur stor andel av raderna som kommer att matas ut av indexskanningen.

Om en tillräckligt hög andel av tabellen kommer att nås, används en bitmappsindexavsökning för att säkerställa att så mycket av diskåtkomsten som möjligt är sekventiell. Däremot ger en vanlig indexskanning en sida i taget slumpmässig åtkomst till tabelldata. (Och om andelen av tabellen som förväntas bli tillgänglig är tillräckligt hög, används inte indexet alls, och hela tabelldata laddas sekventiellt)

En fråga är att projektionen av hur många rader från tabellen som kommer att nås bara är en uppskattning. Men som du kan föreställa dig kommer 'IT%' sannolikt att matcha mer än 'ITQ%' (kom ihåg att suffixet inte är en del av indexsökningen, bara det slutliga filtret)




  1. PDO:s lastInsertId för MySQL ett rasvillkor?

  2. MySQL skiftlägeskänslig fråga

  3. PostgreSQL-databasstorleken är mindre efter säkerhetskopiering/laddning på Heroku

  4. Hur SEC_TO_TIME() fungerar i MariaDB