MySQL में OPTIMIZE TABLE और REPAIR TABLE ऑपरेशन करने के लिए उपयोगकर्ता को न्यूनतम SELECT और INSERT विशेषाधिकारों की आवश्यकता होती है।
आवश्यक विशेषाधिकार
- SELECT - तालिका पढ़ने के लिए
- INSERT - अस्थायी तालिका बनाने के लिए (OPTIMIZE/REPAIR आंतरिक रूप से नई तालिका बनाते हैं)
उपयोगकर्ता बनाएं और अधिकार दें
mysql> CREATE USER 'Emma'@'localhost' IDENTIFIED BY 'Emma123';
mysql> GRANT INSERT, SELECT ON web.* TO 'Emma'@'localhost';
दिए गए अधिकारों की जांच करें
mysql> SHOW GRANTS FOR 'Emma'@'localhost';
आउटपुट
+-------------------------------------------------------+
| Grants for Emma@localhost |
+-------------------------------------------------------+
| GRANT USAGE ON *.* TO `Emma`@`localhost` |
| GRANT SELECT, INSERT ON `web`.* TO `Emma`@`localhost` |
+-------------------------------------------------------+
स्पष्टीकरण
OPTIMIZE TABLE- तालिका को पुनर्निर्माण करता है, खाली स्थान पुनर्प्राप्त करता है, इंडेक्स आंकड़े अद्यतन करता हैREPAIR TABLE- क्षतिग्रस्त तालिकाओं की मरम्मत करता है (मुख्य रूप से MyISAM के लिए)- दोनों ऑपरेशन आंतरिक रूप से एक नई अस्थायी तालिका बनाते हैं, डेटा कॉपी करते हैं, और मूल को प्रतिस्थापित करते हैं
- इसलिए
INSERT(बनाने/डालने के लिए) औरSELECT(पढ़ने के लिए) आवश्यक हैं
नोट
ALTER, CREATE, DROP जैसे उच्च विशेषाधिकार आवश्यक नहीं हैं, लेकिन INSERT और SELECT न्यूनतम हैं।