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

План за заявка на postgres с индекси

Този план:

Index Scan using Designation_place_name on myTable  (cost=0.00..67701.36 rows=22043 width=27) (actual time=0.061..3.796 rows=3376 loops=1)
   Index Cond: ((relation)::text = 'Manager'::text)
   Filter: (timeOfJoining > '1930-10-10 00:00:00+05:53:20'::timestamp with time zone)
 Total runtime: 4.082 ms
(4 rows)

По същество означава:

  1. Използване на индекса Designation_place_name
  2. Намерете редове, които отговарят на релацията на условието на индекса ='Мениджър'
  3. Запазете само редове, които отговарят на критериите за timeOfJoining

По време на стъпка 2 се осъществява достъп до страниците на диска "на случаен принцип", а не последователно, което означава, че индексът съдържа адреса на съвпадащи редове на диска и Postgres посещава тези адреси в реда, посочен от индекса. (Това може да бъде скъпо, между другото. Понякога планиращият ще реши, че е по-евтино просто да прочете цялата таблица (последователно сканиране) или групово извличане на всички редове на страница, като същевременно игнорира реда, посочен от индекса (растрово сканиране на индекс).)

Забележка:в тази заявка няма съединявания на (таблица). Ако имаше такъв, щяхте да видите допълнителни нива на отстъп. Прочетете ги от най-малкия към най-малкия отстъп.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres db design Нормализиране на таблици или използване на колони с масиви

  2. Вземете последния ден от месеца в PostgreSQL

  3. PostgreSQL:Как да оптимизирам моята база данни за съхраняване и заявка за огромна графика

  4. Как да подредите данни в sqlalchemy по списък

  5. Как да стартирам SQL файл в PostgreSQL с помощта на Linux терминал?