मुझे एक डेटाटाइप को INT से BIGINT में 600GB MySQL टेबल में बदलना होगा। कॉलम में एक अद्वितीय सूचकांक है। मैं अहस्ताक्षरित INT के साथ अच्छा हो सकता है, लेकिन मुझे लगता है कि उस या BIGINT को बदलने से बहुत अधिक दर्द होगा। तालिका का इंजन InnoDB है। क्या आसान होगा:
- तालिका में परिवर्तन
- नकल संरचना और
INSERT INTO (SELECT *)
- डंपिंग टेबल और डंप फ़ाइल टेबल परिभाषाओं को बदलना
- और कुछ?
अद्यतन: अनुरोध के अनुसार, MySQL ver 5.5.15, कोई विदेशी कुंजी नहीं है और तालिका बनाएँ:
CREATE TABLE `tbl` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`created_at` datetime NOT NULL,
`tid` bigint(20) NOT NULL,
`t` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`f` tinyint(1) NOT NULL,
`i_id` bigint(20) NOT NULL,
`ir_id` int(11) NOT NULL,
`r_c` int(11) NOT NULL,
`r` tinyint(1) NOT NULL,
`e` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`t` varchar(5) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `user` (`user_id`,`tid`)
) ENGINE=InnoDB AUTO_INCREMENT=1657146169 DEFAULT CHARSET=utf8
ALTER TABLE ONLINE
। क्या आपके पास इस कॉलम को संदर्भित करने वाली विदेशी कुंजियाँ हैं? यदि आप SHOW CREATE TABLE tablename;
आउटपुट दिखाते हैं तो यह मदद करेगा ।