PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Какво е сканиране на растерна памет в план за заявка?

Най-доброто обяснение идва от Том Лейн, който е авторът на алгоритъма, освен ако не греша. Вижте също статията в Уикипедия.

Накратко, това е малко като последователно сканиране. Разликата е, че вместо да посещава всяка дискова страница, един растерен индекс сканира И и ИЛИ приложимите индекси заедно и посещава само дисковите страници, които са му необходими.

Това е различно от сканирането на индекс, при което индексът се посещава ред по ред по ред – което означава, че страница на диска може да бъде посетена многократно.

Re:Въпросът в коментара ти... Да, точно това е.

Индексното сканиране ще премине през редове един по един, отваряйки страници на диска отново и отново, колкото пъти е необходимо (някои, разбира се, ще останат в паметта, но разбирате смисъла).

Сканирането на индекс на растерна карта ще отвори последователно кратък списък от дискови страници и ще вземе всеки приложим ред във всяка от тях (оттук и така наречената повторна проверка, която виждате в плановете за заявка).

Забележете, като настрана, как клъстерирането/подреждането на редове влияе върху свързаните разходи с всеки от методите. Ако редовете са навсякъде в произволен ред, растерният индекс ще бъде по-евтин. (И всъщност, ако наистина са всички на място, последователното сканиране ще бъде най-евтино, тъй като сканирането на индекс на растерни изображения не е без допълнителни разходи.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cloud9 постгрес

  2. Съвети за най-добри практики за PostgreSQL VACUUM and ANALYZE

  3. Как да проверя дали тригерът съществува в PostgreSQL?

  4. Актуализирайте множество колони в тригерна функция в plpgsql

  5. Как мога да използвам UUID в SQLAlchemy?