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

तालिका जोड़ें कॉलम में बदलाव करने में लंबा समय लगता है

आपका ALTER TABLE कथन का तात्पर्य है कि MySQL को नए कॉलम सहित तालिका की प्रत्येक पंक्ति को फिर से लिखना होगा। चूंकि आपके पास 2 मिलियन से अधिक पंक्तियां हैं, मैं निश्चित रूप से उम्मीद करता हूं कि इसमें काफी समय लगेगा, जिसके दौरान आपका सर्वर अधिकतर आईओ-बाध्य होगा। आप आमतौर पर निम्न कार्य करने के लिए अधिक प्रदर्शनकारी पाएंगे:

CREATE TABLE main_table_new LIKE main_table;
ALTER TABLE main_table_new ADD COLUMN location VARCHAR(256);
INSERT INTO main_table_new SELECT *, NULL FROM main_table;
RENAME TABLE main_table TO main_table_old, main_table_new TO main_table;
DROP TABLE main_table_old;

इस तरह आप खाली टेबल पर कॉलम जोड़ते हैं, और मूल रूप से उस नई टेबल में डेटा लिखते हैं जो आपको यकीन है कि कोई और नहीं देखेगा बिना ज्यादा से ज्यादा संसाधनों को लॉक किए।



  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. PHP MYSQL - 127.0.0.1 और लोकलहोस्ट के बीच अंतर

  3. Laravel 5 के साथ प्राथमिक कुंजी के रूप में UUID का उपयोग करना

  4. कमांड लाइन मैक से mysql तक नहीं पहुंच सकता

  5. MySQL में शामिल हों के साथ हटाएं