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

Кой е най-добрият начин за зареждане на огромно количество данни в PostgreSQL?

ПравНЕ използвайте индекси с изключение на уникален единичен цифров ключ.

Това не се вписва в цялата теория на DB, която получихме, но тестването с голямо количество данни го демонстрира. Ето резултат от 100 милиона зареждания наведнъж за достигане на 2 милиарда реда в таблица и всеки път куп различни заявки в получената таблица. Първа графика с 10 гигабита NAS (150MB/s), втора с 4 SSD в RAID 0 (R/W @ 2GB/s).

Ако имате повече от 200 милиона реда в таблица на обикновени дискове, ще бъде по-бързо, ако забравите индексите. При SSD лимитът е 1 милиард.

Правил съм го и с дялове за по-добри резултати, но с PG9.2 е трудно да се възползвате от тях, ако използвате съхранени процедури. Също така трябва да се погрижите за запис/четене само на 1 дял наведнъж. Въпреки това, дяловете са начинът да запазите масите си под стената от 1 милиард реда. Също така помагамного за многопроцесорна обработка на вашите товари. Със SSD, един процес ми позволява да вмъкна (копирам) 18 000 реда/s (с включена част от обработката). С многопроцесорна обработка на 6 CPU, тя нараства до 80 000 реда/сек.

Наблюдавайте използването на CPU и IO, докато тествате, за да оптимизирате и двете.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Трябва ли да включа SELECT в транзакция?

  2. Грешка при стартиране на python manage.py syncdb локално, но няма грешка при изпълнение на същата команда чрез Heroku

  3. Как да избера минимален UUID с ляво външно съединение?

  4. Обработка на изключения в PostgreSQL

  5. Как да върна примерен ред от базата данни един по един