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

MySQL:INSERT की तुलना में DELETE अधिक CPU गहन क्यों है?

कम से कम InnoDB के साथ (और मुझे आशा है कि आपके पास इस पर है), आपके पास अधिक ऑपरेशन हैं बिना किसी विदेशी कुंजी के भी . एक इंसर्ट मोटे तौर पर यह है:

  1. पंक्ति डालें
  2. बाइनरी लॉग बफर में चिह्नित करें
  3. मार्क कमिट

हटाना निम्न कार्य करता है:

  1. चिह्न हटा दी गई पंक्ति (एक प्रविष्टि के समान हिट लेते हुए -- पृष्ठ फिर से लिखा जाता है)
  2. बाइनरी लॉग बफर में चिह्नित करें
  3. चिह्न प्रतिबद्ध
  4. वास्तव में पंक्ति को हटा दें, (एक प्रविष्टि के रूप में एक ही हिट लेते हुए - पृष्ठ फिर से लिखा जाता है)
  5. बाइनरी लॉग बफ़र में भी थ्रेड ट्रैक के विलोपन को मिटाएं।

उसके लिए, आपके पास डालने के बजाए हटाने के लिए दो बार काम चल रहा है। एक डिलीट के लिए उन दो राइट्स की आवश्यकता होती है क्योंकि इसे आगे जाने वाले सभी संस्करणों के लिए हटाए जाने के रूप में चिह्नित किया जाना चाहिए, लेकिन इसे केवल तभी हटाया जा सकता है जब कोई लेन-देन नहीं रहता है जो इसे देखता है। क्योंकि InnoDB डिस्क पर केवल पूर्ण ब्लॉक लिखता है, ब्लॉक के लिए संशोधन दंड स्थिर रहता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL, मैक्स, ग्रुप बाय और मैक्स

  2. कैसे लार्वेल में एक mysql संग्रहीत कार्यविधि से सेट एकाधिक परिणाम लाने के लिए?

  3. ईमेल में PHP अटैचमेंट खाली है

  4. MySQL डेटाबेस को सिंक्रोनाइज़ करने के लिए सबसे अच्छा टूल

  5. मैसकल - प्रतिशत से सीमा?