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

मैसकल रो साइज के लिए चेंज लिमिट बहुत बड़ी है

सवाल serverfault पर पूछा गया है भी।

<ब्लॉकक्वॉट>

आप इस लेख पर एक नज़र डालना चाह सकते हैं जो MySQL रो साइज के बारे में बहुत कुछ बताता है। यह ध्यान रखना महत्वपूर्ण है कि यदि आप टेक्स्ट या बीएलओबी फ़ील्ड का उपयोग करते हैं, तो भी आपकी पंक्ति का आकार 8K (InnoDB के लिए सीमा) से अधिक हो सकता है क्योंकि यह पृष्ठ में प्रत्येक फ़ील्ड इनलाइन के लिए पहले 768 बाइट्स संग्रहीत करता है।

इसे ठीक करने का सबसे आसान तरीका Barracuda फ़ाइल स्वरूप का उपयोग करना है InnoDB के साथ। यह मूल रूप से पहले 768 बाइट्स को संग्रहीत करने के बजाय केवल 20 बाइट पॉइंटर को टेक्स्ट डेटा में संग्रहीत करके समस्या से पूरी तरह छुटकारा दिलाता है।

ओपी के लिए काम करने वाली विधि थी:

  1. निम्नलिखित को my.cnf में जोड़ें [mysqld] . के अंतर्गत फ़ाइल अनुभाग।

    innodb_file_per_table=1
    innodb_file_format = Barracuda
    
  2. ALTER उपयोग करने के लिए तालिका ROW_FORMAT=COMPRESSED

    ALTER TABLE nombre_tabla
        ENGINE=InnoDB
        ROW_FORMAT=COMPRESSED 
        KEY_BLOCK_SIZE=8;
    

एक संभावना है कि उपरोक्त अभी भी आपकी समस्याओं का समाधान नहीं करता है। यह एक ज्ञात (और सत्यापित) बग है InnoDB . के साथ इंजन, और अभी के लिए एक अस्थायी सुधार MyISAM . पर वापस आना है अस्थायी भंडारण के रूप में इंजन। तो, आपके my.cnf . में फ़ाइल:

internal_tmp_disk_storage_engine=MyISAM


  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 सर्वर से कनेक्शन टूट गया, सिस्टम त्रुटि:0

  3. लिनक्स टर्मिनल पर MySQL का उपयोग करने का एक सरल परिचय

  4. MySQL में, क्या मैं प्रतिबद्ध होने तक संदर्भित अखंडता जांच को स्थगित कर सकता हूं

  5. PDO MySQL:PDO::ATTR_EMULATE_PREPARES का प्रयोग करें या नहीं?