sql >> Database >  >> RDS >> PostgreSQL

Prestatieverbetering van PostgreSQL 9.6 opgeslagen procedure

In jouw geval wordt het aantal niet bijgewerkt wanneer user_id van het product wordt gewijzigd, dus ik raad counter_cache van rails

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

Kijk ook eens naar deze gem

Opmerking:- Dit lost uw invoeging per rij niet op probleem hoor

Je moet dan een aangepaste teller schrijven, zoiets als het volgende

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

in rails console

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


  1. Is er een manier om alle elementen van de JSON-array aan te pakken bij het maken van een beperking in PostgreSQL?

  2. Hoe u UTC Datetime kunt krijgen van UNIX_TIMESTAMP() in MySQL

  3. Selecteer kolommen van tabelindex

  4. Oracle:krijg gegevens over alle maanden, 0 als er geen gegevens zijn