Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

ActiveRecord नष्ट_ऑल इतना समय क्यों ले रहा है?

इसकी गहराई में जाने पर, ऐसा लगता है कि यह comments . से हटाना है सरणी जिसमें बहुत लंबा समय लगता है। हटाए गए रिकॉर्ड्स को फिर सरणी से हटा दिया जाता है यहां

इसे एक बड़े सरणी के साथ सिम्युलेट करते हुए, हमें वही धीमा व्यवहार मिलता है:

1.9.3-p194 :001 > require 'benchmark'; require 'ostruct'
 => true 
1.9.3-p194 :002 > i = 0; a = []
 => [] 
1.9.3-p194 :003 > 35_000.times { i+=1; a << OpenStruct.new(value: i) }
 => 35000 
1.9.3-p194 :004 > puts Benchmark.measure { a.each { |i| a.delete(i) } }
623.560000   0.820000 624.380000 (625.244664)

ActiveRecord को संभवतः Array#clear . करने के लिए अनुकूलित किया जा सकता है destroy_all . के मामले में ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पेश है पिछले महीने के योग के लिए एक नया कॉलम

  2. MySQL के साथ माता-पिता और बच्चों का चयन करें

  3. PHP क्वेरी पर अटक गया

  4. अल्पविराम के साथ मूल्यों को कैसे सम्मिलित करें? स्विच स्टेटमेंट में

  5. कॉलम कैसे बदलें और डिफ़ॉल्ट मान कैसे बदलें?