PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Peningkatan kinerja prosedur tersimpan PostgreSQL 9.6

Dalam kasus Anda, jumlah tidak akan diperbarui ketika user_id produk diubah, Jadi, saya akan merekomendasikan counter_cache rel

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

Lihat juga permata ini

Catatan :- Ini tidak akan menyelesaikan per row insertion masalah sekalipun

Anda harus menulis penghitung khusus, seperti mengikuti

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

di konsol rel

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. Postgres - cara mengenkripsi kolom dan datanya

  2. Nilai nol tidak unik

  3. Menggunakan periode variabel dalam interval di Postgres

  4. SQL:Cluster nilai yang sama dari kolom B, namun diurutkan berdasarkan kolom A

  5. Bagaimana mengatur UTF-8 di konstruktor kelas PDO untuk database PHP PgSQL