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

Mysql::Error:निर्दिष्ट कुंजी बहुत लंबी थी; अधिकतम कुंजी लंबाई 1000 बाइट्स है

यह पूरी तरह से एक MySQL समस्या है -

MySQL के अलग-अलग इंजन हैं - MyISAM, InnoDB, मेमोरी...

MySQL में आपके द्वारा उपयोग किए जाने वाले स्थान की मात्रा पर अलग-अलग सीमाएं हैं कॉलम पर इंडेक्स परिभाषित करें - माईसाम के लिए यह 1,000 बाइट्स है; InnoDB के लिए यह 767 है . और उन स्तंभों का डेटा प्रकार मायने रखता है - VARCHAR . के लिए , यह 3x है इसलिए VARCHAR(100) . पर एक इंडेक्स उनमें से 300 बाइट्स लेंगे (क्योंकि 100 वर्ण * 3 =300)।

जब आप उच्चतम मूल्य पर पहुँचते हैं तो कुछ अनुक्रमण को समायोजित करने के लिए, आप स्तंभ डेटा प्रकार के भागों के संबंध में अनुक्रमणिका को परिभाषित कर सकते हैं:

CREATE INDEX example_idx ON YOUR_TABLE(your_column(50))

मान लें कि your_column है VARCHAR(100) , ऊपर के उदाहरण में अनुक्रमणिका केवल पहले 50 वर्णों पर होगी। 50वें वर्ण से आगे के डेटा की खोज करने से अनुक्रमणिका का उपयोग नहीं किया जा सकेगा।



  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. mysql रूट पासवर्ड कैसे बदलें

  4. PhpMyAdmin में प्रक्रियाओं को स्टोर करें

  5. पूरे डेटाबेस में CHARACTER SET (और COLLATION) कैसे बदलें?