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

Как PostgreSQL кешира изрази и данни?

По принцип само съдържанието на таблични и индексни файлове ще бъде кеширано в споделеното буферно пространство.

Плановете за заявки се кешират при някои обстоятелства. Най-добрият начин да се гарантира това е да ПОДГОТВИТЕ заявката веднъж, след което да я ИЗПЪЛНЯВАТЕ всеки път.

Резултатите от заявка не се кешират автоматично. Ако изпълните отново същата заявка - дори ако е идентична буква по буква и не са извършени актуализации на DB - тя пак ще изпълни целия план. Той, разбира се, ще използва всички данни от таблица/индекс, които вече са в кеша на споделените буфери; така че няма да се налага непременно да чете отново всички данни от диска.

Актуализация на кеширането на план

Кеширането на план обикновено се извършва на сесия. Това означава, че само връзката, която прави плана, може да използва кешираната версия. Други връзки трябва да правят и използват свои собствени кеширани версии. Това всъщност не е проблем с производителността, защото спестяванията, които получавате от повторното използване на план, са почти винаги минимални в сравнение с цената на свързване така или иначе. (Освен ако вашите запитвания не са наистина сложно.)

Прави кеш, ако използвате PREPARE:http://www.postgresql.org /docs/current/static/sql-prepare.html

Прави кеш, когато заявката е в PL/plSQL функция:http://www.postgresql.org/docs/current/static/plpgsql-implementation.html#PLPGSQL-PLAN-CACHING

Това не кеширане на ad-hoc заявки, въведени в psql.

Надяваме се, че някой друг може да разясни други случаи на кеширане на план на заявка.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Мога ли да разделя заявка на няколко заявки или да създам паралелизъм, за да ускоря заявката?

  2. Разгръщане и конфигуриране на PostgreSQL с Puppet

  3. Намиране и замяна на регулярни изрази в Postgres

  4. Как да активирам функцията за профилиране на PostgreSQL?

  5. Как да инсталирам postgres с NSIS с всички параметри?