PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách thích hợp để sử dụng mô-đun node.js postgresql là gì?

Tôi là tác giả của node-postgres. Đầu tiên, tôi xin lỗi vì tài liệu đã không đưa ra được lựa chọn phù hợp rõ ràng:đó là lỗi của tôi. Tôi sẽ cố gắng cải thiện nó. Tôi đã viết một Gist ngay bây giờ để giải thích điều này vì cuộc trò chuyện đã quá dài đối với Twitter.

Sử dụng pg.connect con đường để đi trong môi trường web.

Máy chủ PostgreSQL chỉ có thể xử lý 1 truy vấn tại một thời điểm trên mỗi kết nối. Điều đó có nghĩa là nếu bạn có 1 toàn cầu new pg.Client() được kết nối với yourbackend toàn bộ ứng dụng của bạn bị tắc nghẽn dựa trên tốc độ phản hồi của postgrescan đối với các truy vấn. Theo nghĩa đen, nó sẽ xếp hàng mọi thứ, xếp hàng đợi truy vấn. Vâng, nó không đồng bộ và vì vậy không sao cả ... nhưng bạn sẽ không nhân thông lượng của mình với 10 lần sao? Sử dụng pg.connect đặt pg.defaults.poolSize đến một cái gì đó lành mạnh (chúng tôi làm 25-100, chưa chắc chắn là con số thích hợp).

new pg.Client là khi bạn biết mình đang làm gì. Khi bạn cần một khách hàng duy nhất tồn tại lâu dài vì lý do nào đó hoặc cần kiểm soát rất cẩn thận vòng đời. Một ví dụ điển hình về điều này là khi sử dụng LISTEN/NOTIFY . Ứng dụng khách lắng nghe cần phải ở xung quanh và được kết nối và không được chia sẻ để nó có thể xử lý đúng cách NOTIFY Một ví dụ khác sẽ là khi mở một ứng dụng khách để giết một số thứ hoặc trong các tập lệnh dòng lệnh.

Một điều rất hữu ích là tập trung tất cả quyền truy cập vào cơ sở dữ liệu trong ứng dụng của bạn vào một tệp. Đừng xả rác pg.connect cuộc gọi hoặc khách hàng mới trong suốt. Có một tệp như db.js trông giống như sau:

module.exports = {
   query: function(text, values, cb) {
      pg.connect(function(err, client, done) {
        client.query(text, values, function(err, result) {
          done();
          cb(err, result);
        })
      });
   }
}

Bằng cách này, bạn có thể thay đổi cách triển khai của mình từ pg.connect đến một nhóm khách hàng tùy chỉnh hoặc bất cứ thứ gì và chỉ phải thay đổi mọi thứ ở một nơi.

Hãy xem mô-đun node-pg-query thực hiện điều này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sao lưu gia tăng PostgreSQL và phục hồi điểm trong thời gian

  2. Làm cách nào để thay đổi vị trí của một cột trong bảng cơ sở dữ liệu PostgreSQL?

  3. Sự khác biệt giữa chỉ số GiST và GIN

  4. Khung khả dụng cao PostgreSQL tốt nhất là gì? PAF so với repmgr và Patroni Infographic

  5. Chuyển đổi / Chuyển lại trong Slony-I trong khi nâng cấp các phiên bản chính của PostgreSQL 8.4.x / 9.3.x