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

Cải thiện hiệu suất thủ tục được lưu trữ PostgreSQL 9.6

Trong trường hợp của bạn, số lượng trường hợp của bạn sẽ không cập nhật khi user_id của sản phẩm thay đổi, Vì vậy, tôi khuyên bạn nên counter_cache của đường ray

class Product < ActiveRecord::Base
  belongs_to :user, counter_cache: true
end

Ngoài ra, hãy xem đá quý này

Lưu ý:- Điều này sẽ không giải quyết được per row insertion của bạn vấn đề mặc dù

Sau đó, bạn phải viết bộ đếm tùy chỉnh, giống như sau

class Product < ApplicationRecord
  has_many :products
  attr_accessor :update_count

  belongs_to :user#, counter_cache: true

  after_save do
    update_counter_cache
  end

  after_destroy do
    update_counter_cache
  end

  def update_counter_cache
    return unless update_count
    user.products_count = user.products.count
    user.save
  end
end

trong bảng điều khiển rails

10.times{|n| Product.new(name: "Latest New Product #{n}", update_count: n == 9, user_id: user.id).save}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. `WHERE col IN` với các tham số được đặt tên

  2. Sử dụng Docker, điều đã kích hoạt PANIC:không thể định vị bản ghi điểm kiểm tra hợp lệ

  3. Thay thế tất cả các bảng của cơ sở dữ liệu ngoại trừ một bảng, bằng dữ liệu từ một db khác

  4. Trường hợp với các thực thể doct2, symfony2 và postgresql

  5. pg_dump:làm thế nào để cài đặt trên Amazon Linux cho PostgreSQL 9.5.2?